git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Ira Weiny <weiny2@llnl.gov>
To: Bert Wesarg <bert.wesarg@googlemail.com>
Cc: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Brian Behlendorf" <behlendorf1@llnl.gov>,
	"Git Mailing List" <git@vger.kernel.org>
Subject: Re: [PATCH] Add "list" and "rm" sub commands to tg-depend
Date: Thu, 9 Apr 2009 11:18:38 -0700	[thread overview]
Message-ID: <20090409111838.c79d532f.weiny2@llnl.gov> (raw)
In-Reply-To: <36ca99e90904091034m4d4d31dct78acb333612e678@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3462 bytes --]

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

> 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]

> >> > > > +       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

>
> 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

[-- Attachment #2: 0001-Add-list-and-rm-sub-commands-to-tg-depend.patch --]
[-- Type: application/octet-stream, Size: 2584 bytes --]

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


  reply	other threads:[~2009-04-09 18:42 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20090407133329.57b06727.weiny2@llnl.gov>
     [not found] ` <20090408080824.GF8940@machine.or.cz>
     [not found]   ` <20090408083955.GA28482@pengutronix.de>
     [not found]     ` <20090408091949.8a648d83.weiny2@llnl.gov>
     [not found]       ` <20090409124337.GA6034@pengutronix.de>
2009-04-09 17:34         ` [PATCH] Add "list" and "rm" sub commands to tg-depend Bert Wesarg
2009-04-09 18:18           ` Ira Weiny [this message]
     [not found]         ` <20090409091021.5a7ded79.weiny2@llnl.gov>
2009-04-09 18:01           ` Bert Wesarg
2009-04-09 20:15             ` Uwe Kleine-König
2009-04-11 15:40               ` Bert Wesarg
2009-04-11 19:06                 ` Uwe Kleine-König
2009-04-11 19:29                   ` Bert Wesarg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090409111838.c79d532f.weiny2@llnl.gov \
    --to=weiny2@llnl.gov \
    --cc=behlendorf1@llnl.gov \
    --cc=bert.wesarg@googlemail.com \
    --cc=git@vger.kernel.org \
    --cc=u.kleine-koenig@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).