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
next prev parent 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).