From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Bert Wesarg <bert.wesarg@googlemail.com>
Cc: git@vger.kernel.org, Peter Simons <simons@cryp.to>,
pasky@suse.cz, Per Cederqvist <ceder@lysator.liu.se>,
Olaf Dabrunz <odabrunz@gmx.net>,
Thomas Moschny <thomas.moschny@gmx.de>,
martin f krafft <madduck@madduck.net>
Subject: Re: [TopGit PATCH 3/6] tg-files: list files changed by the topic branch
Date: Mon, 4 Oct 2010 00:03:30 +0200 [thread overview]
Message-ID: <20101003220330.GE28679@pengutronix.de> (raw)
In-Reply-To: <1286141157-30422-3-git-send-email-bert.wesarg@googlemail.com>
Hi Bert,
On Sun, Oct 03, 2010 at 11:25:54PM +0200, Bert Wesarg wrote:
> this could also be a --name-only option to tg-patch. But I Like the
> similarity to 'quilt files'.
>
> Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
>
> ---
> .gitignore | 2 +
> README | 8 ++++++
> contrib/tg-completion.bash | 1 +
> tg-files.sh | 52 ++++++++++++++++++++++++++++++++++++++++++++
> 4 files changed, 63 insertions(+), 0 deletions(-)
>
> diff --git a/.gitignore b/.gitignore
> index 0342e09..0dc4d0e 100644 .gitignore
> --- a/.gitignore
> +++ b/.gitignore
> @@ -22,6 +22,8 @@
> /tg-depend.txt
> /tg-export
> /tg-export.txt
> +/tg-files
> +/tg-files.txt
> /tg-import
> /tg-import.txt
> /tg-info
> diff --git a/README b/README
> index f103d92..46f564a 100644 README
> --- a/README
> +++ b/README
> @@ -272,6 +272,14 @@ tg depend
>
> TODO: Subcommand for removing dependencies, obviously
>
> +tg files
> +~~~~~~~~
> + List files changed by the current or specified topic branch.
> +
> + Options:
> + -i list files based on index instead of branch
> + -w list files based on working tree instead of branch
> +
> tg info
> ~~~~~~~
> Show a summary information about the current or specified
> diff --git a/contrib/tg-completion.bash b/contrib/tg-completion.bash
> index 0ee233c..38567d0 100755 contrib/tg-completion.bash
> --- a/contrib/tg-completion.bash
> +++ b/contrib/tg-completion.bash
> @@ -467,6 +467,7 @@ _tg ()
> delete) _tg_delete ;;
> depend) _tg_depend ;;
> export) _tg_export ;;
> + files) _tg_patch ;;
> help) _tg_help ;;
> import) _tg_import ;;
> info) _tg_info ;;
> diff --git a/tg-files.sh b/tg-files.sh
> new file mode 100644
> index 0000000..0723bf1 tg-files.sh
> --- /dev/null
> +++ b/tg-files.sh
> @@ -0,0 +1,52 @@
> +#!/bin/sh
> +# TopGit - A different patch queue manager
> +# (c) Petr Baudis <pasky@suse.cz> 2008
> +# GPLv2
> +
> +name=
> +
> +topic=
> +diff_opts=
> +diff_committed_only=yes # will be unset for index/worktree
> +
> +
> +## Parse options
> +
> +while [ -n "$1" ]; do
> + arg="$1"; shift
> + case "$arg" in
> + -i)
> + topic='(i)'
> + diff_opts="$diff_opts --cached";
> + diff_committed_only=;;
> + -w)
> + topic='(w)'
> + diff_committed_only=;;
> + -*)
> + echo "Usage: tg [...] files [-i | -w] [NAME]" >&2
> + exit 1;;
> + *)
> + [ -z "$name" ] || die "name already specified ($name)"
> + name="$arg";;
> + esac
> +done
> +
> +
> +[ -n "$name" -a -z "$diff_committed_only" ] &&
> + die "-i/-w are mutually exclusive with NAME"
> +
> +[ -n "$name" ] || name="$(git symbolic-ref HEAD | sed 's#^refs/\(heads\|top-bases\)/##')"
> +base_rev="$(git rev-parse --short --verify "refs/top-bases/$name" 2>/dev/null)" ||
> + die "not a TopGit-controlled branch"
> +
> +# if not index/worktree, topic is current branch
> +[ -z "$topic" ] && topic="$name"
> +
> +
> +
> +# Evil obnoxious hack to work around the lack of git diff --exclude
> +git diff --name-only $diff_opts "$base_rev" ${diff_committed_only:+"$name"} -- |
> + fgrep -vx ".topdeps" |
> + fgrep -vx ".topmsg" || : # fgrep likes to fail randomly?
Instead of using fgrep you could export the branch and call git diff
--name-only $diff_opts on the resulting commit?
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
next prev parent reply other threads:[~2010-10-03 22:03 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-03 19:15 planning a new topgit release Uwe Kleine-König
2010-10-03 21:21 ` Bert Wesarg
2010-10-03 21:25 ` [TopGit PATCH 1/6] Let tg-update take a branch parameter Bert Wesarg
2010-10-03 21:25 ` [TopGit PATCH 2/6] tg-remote: use default remote if non is given Bert Wesarg
2010-10-03 21:25 ` [TopGit PATCH 3/6] tg-files: list files changed by the topic branch Bert Wesarg
2010-10-03 21:25 ` [TopGit PATCH 4/6] tg-prev/tg-next: commands to explore dependencies Bert Wesarg
2010-10-03 21:25 ` [TopGit PATCH 5/6] put die() messages to stderr Bert Wesarg
2010-10-03 21:25 ` [TopGit PATCH 6/6] tg-log: short cut to git log Bert Wesarg
[not found] ` <AANLkTi=Kwx5avY7xRdWLS931zK2fi7cj5Q8u3++bqRO+@mail.gmail.com>
2010-10-04 6:45 ` Bert Wesarg
2010-10-04 19:06 ` [TopGit PATCH] tg-log: move note from tg base to tg log Bert Wesarg
2010-10-04 21:05 ` Štěpán Němec
2010-10-04 21:08 ` Bert Wesarg
2010-10-04 6:45 ` [TopGit PATCH 6/6] tg-log: short cut to git log Uwe Kleine-König
2010-10-03 21:55 ` [TopGit PATCH 4/6] tg-prev/tg-next: commands to explore dependencies Uwe Kleine-König
2010-10-04 6:48 ` Bert Wesarg
2010-10-03 22:03 ` Uwe Kleine-König [this message]
2010-10-04 6:43 ` [TopGit PATCH 3/6] tg-files: list files changed by the topic branch Bert Wesarg
2010-10-04 6:47 ` Uwe Kleine-König
2010-10-04 6:50 ` Bert Wesarg
2010-10-04 6:59 ` Uwe Kleine-König
2010-10-04 13:16 ` [TopGit PATCH] " Bert Wesarg
2010-10-04 13:52 ` Uwe Kleine-König
2010-10-04 16:02 ` Bert Wesarg
2010-10-04 18:27 ` [TopGit PATCH v3] " Bert Wesarg
2010-10-04 20:09 ` [TopGit PATCH] tg-patch: use pretty_tree Bert Wesarg
2010-10-04 23:02 ` Bert Wesarg
2010-10-05 7:18 ` Uwe Kleine-König
2010-10-05 8:05 ` Bert Wesarg
2010-10-05 19:04 ` [TopGit PATCH v2] " Bert Wesarg
2010-10-05 20:01 ` Uwe Kleine-König
2010-10-05 20:14 ` Bert Wesarg
2010-10-05 7:17 ` [TopGit PATCH v3] tg-files: list files changed by the topic branch Uwe Kleine-König
2010-10-05 19:03 ` [TopGit PATCH v4] " Bert Wesarg
2010-10-05 22:02 ` Štěpán Němec
2010-10-06 6:11 ` Bert Wesarg
2010-10-03 22:00 ` [TopGit PATCH 2/6] tg-remote: use default remote if non is given Uwe Kleine-König
2010-10-04 3:13 ` Ævar Arnfjörð Bjarmason
2010-10-04 6:43 ` Uwe Kleine-König
2010-10-03 22:11 ` planning a new topgit release Uwe Kleine-König
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101003220330.GE28679@pengutronix.de \
--to=u.kleine-koenig@pengutronix.de \
--cc=bert.wesarg@googlemail.com \
--cc=ceder@lysator.liu.se \
--cc=git@vger.kernel.org \
--cc=madduck@madduck.net \
--cc=odabrunz@gmx.net \
--cc=pasky@suse.cz \
--cc=simons@cryp.to \
--cc=thomas.moschny@gmx.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.