git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Add "list" and "rm" sub commands to tg-depend

From
IWIra Weiny <weiny2@llnl.gov>
Date
Apr 9, 2009, 18:18 UTC
Message-ID
<20090409111838.c79d532f.weiny2@llnl.gov>
In-Reply-To
<36ca99e90904091034m4d4d31dct78acb333612e678@mail.gmail.com>

On Thu, 9 Apr 2009 19:34:06 +0200 Bert Wesarg <bert.wesarg@googlemail.com> wrote:

Show 7 quoted lines
> 2009/4/9 Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
> > Hello Ira,
> >
> > On Wed, Apr 08, 2009 at 09:19:49AM -0700, Ira Weiny wrote:
> >> On Wed, 8 Apr 2009 10:39:55 +0200
> >> Uwe Kleine-König <u.kleine-koenig@pengutronix.de> wrote:
> >>
[snip]
Show 36 quoted lines
> >> > > > +       mv $TMPFILE $root_dir/.topdeps
> >> > > > +else
> >> > > > +       echo "$name" >>"$root_dir/.topdeps"
> >> > > > +fi
> >> > > > +
> >> > > > +## commit it and update this branch
> >> > > >  git add -f "$root_dir/.topdeps"
> >> > > >  git commit -m"New TopGit dependency: $name"
> >> > > >  $tg update
> >> > > > --
> >> > > > 1.5.4.5
> >> > I don't think the patch is correct.  Just removing a branch from
> >> > .topdeps is not enough.
> >> >
> >> > Did you try to export the tg-branch?  The result will be that the patch
> >> > for that you deleted the dependency has the deleted change folded in.
> >>
> >> Indeed you are correct.  It was working for me because I was moving a node
> >> from one place to another.  But the new location was still an ancestor of the
> >> dependency which was removed.  I still think this can be automated but I will
> >> have to work on it.
> > So you mean that rm should only work if the patch is still a dependency?
> >
> > You might want to check
> >
> >        http:// thread.gmane.org/gmane.comp.version-control.git/114581
> >
> > before investing time to implement it.  (I cc:d Bert Wesarg.)  If you
> > had posted to git@vger.kernel.org Bert might have seen your mail alone.
> > (hint hint)
> Uwe,
> 
> thanks for the Cc.
> 
> I really can't reconstruct this thread, could some one send me the
> original patch.
I have attached the original patch (cleaned up with Uwe's original comments).
NOTE: this will not work but I am just sending it to help reconstruct the
thread.

I think to do this properly you would have to either A) create a new branch without the topic specified B) work your way back through the dependencies and reverse patch all those nodes which do not have a common ancestor with any of your other dependencies. As an aside I found that topgit does not like you removing the only dependency left. I was unable to get that to work at all. I don't know why.

I believe you specified option A in a message after this one, correct?
Ira
Show 28 quoted lines
>
> My interest is this, that I implemented a tg-prev
> (lists all deps from given topic), tg-next (lists topics depending on
> the given topic), and a tg-tsort (which gives a topological list of
> dependencies, which is a little outdated after the --graphviz option)
> 
> The original message seems lost in the archive, the comments are still there:
> 
> http:// thread.gmane.org/gmane.comp.version-control.git/96483
> 
> I can send an update on this.
> 
> I think the first two commands could be added as sub-commands to
> tg-depend, with bash completion you don't need to type that much
> nowadays.
> 
> As I said to tg-tsort, its probably outdated because of the graphviz
> output, but may still provide valid information.  Btw. does anyone
> know a console output driver for the graphviz tools, i.e. dot and co?
> 
> Bert
> 
> >
> > Best regards
> > Uwe
> 
> PS: Finally added git list to Cc:
> 
-- 
Ira Weiny
Math Programmer/Computer Scientist
Lawrence Livermore National Lab
weiny2@llnl.gov


From 3a424a1887a815ca742ef4bacec09b245658b1b7 Mon Sep 17 00:00:00 2001
From: Ira Weiny <weiny2@llnl.gov>
Date: Tue, 7 Apr 2009 13:03:48 -0700
Subject: [PATCH] Add "list" and "rm" sub commands to tg-depend


Signed-off-by: Ira Weiny <weiny2@llnl.gov>
---
 README       |   16 +++++++++++++---
 tg-depend.sh |   27 +++++++++++++++++++++++++--
 2 files changed, 38 insertions(+), 5 deletions(-)

diff --git a/README b/README
index d2f095d..8b4356d 100644
--- a/README
+++ b/README
@@ -256,8 +256,13 @@ tg delete
 tg depend
 ~~~~~~~~~
 	Change dependencies of a TopGit-controlled topic branch.
-	This should have several subcommands, but only 'add' is
-	supported right now.
+	This command has the subcommands:
+		'list'  <== Default (run when no subcommand is given)
+		'add'
+		'rm'
+
+	'list' lists the topic branches on which the current topic branch
+	depends.
 
 	The 'add' subcommand takes an argument of a topic branch
 	to be added, adds it to '.topdeps', performs a commit and
@@ -266,7 +271,12 @@ tg depend
 	adjusting '.topmsg', prepare them in the index before
 	calling 'tg depend add'.
 
-	TODO: Subcommand for removing dependencies, obviously
+	The 'rm' subcommand takes an argument of a topic branch
+	to be removed, removes it from '.topdeps', performs a commit and
+	then updates your topic branch accordingly. If you want to
+	do other things related to the dependency addition, like
+	adjusting '.topmsg', prepare them in the index before
+	calling 'tg depend rm'.
 
 tg info
 ~~~~~~~
diff --git a/tg-depend.sh b/tg-depend.sh
index ef5f94f..6a4bc85 100644
--- a/tg-depend.sh
+++ b/tg-depend.sh
@@ -4,16 +4,25 @@
 # GPLv2
 
 name=
+mode=
 
 
 ## Parse options
 
 subcmd="$1"; shift || :
 case "$subcmd" in
-	-h|"")
+	-h)
 		echo "Usage: tg [...] depend add NAME" >&2
 		exit 1;;
 	add)
+		mode="add"
+		;;
+	""|list)
+		cat $root_dir/.topdeps
+		exit 0
+		;;
+	rm)
+		mode="rm"
 		;;
 	*)
 		die "unknown subcommand ($subcmd)";;
@@ -43,7 +52,21 @@ baserev="$(git rev-parse --verify "refs/top-bases/$name" 2>/dev/null)" ||
 
 ## Record new dependency
 
-echo "$name" >>"$root_dir/.topdeps"
+if [ "$mode" = "rm" ]; then
+	grep $name $root_dir/.topdeps > /dev/null
+	if [ "$?" != "0" ]; then
+		echo "Failed to find $name in dependency list"
+		exit 1
+	fi
+	TMPFILE=`mktemp` || exit 1
+	echo $TMPFILE
+	grep -v $name $root_dir/.topdeps > $TMPFILE
+	mv $TMPFILE $root_dir/.topdeps
+else
+	echo "$name" >>"$root_dir/.topdeps"
+fi
+
+## commit it and update this branch
 git add -f "$root_dir/.topdeps"
 git commit -m"New TopGit dependency: $name"
 $tg update
-- 
1.5.4.5
Previous: Bert WesargNext: Bert Wesarg
Message 2 of 7 in “Re: [PATCH] Add "list" and "rm" sub commands to tg-depend”
  1. Bert WesargApr 9, 2009
  2. Ira WeinyApr 9, 2009
  3. Bert WesargApr 9, 2009
  4. Uwe Kleine-KönigApr 9, 2009
  5. Bert WesargApr 11, 2009
  6. Uwe Kleine-KönigApr 11, 2009
  7. Bert WesargApr 11, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.