chiark / gitweb /
topgit.git
9 years agotg-push: add bash completion
Bert Wesarg [Tue, 26 May 2009 23:31:34 +0000 (01:31 +0200)]
tg-push: add bash completion

Include all options.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agohelp: use pager
Bert Wesarg [Tue, 2 Jun 2009 20:35:12 +0000 (22:35 +0200)]
help: use pager

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agotg-push: handle non-tgish branches
Bert Wesarg [Wed, 27 May 2009 08:17:01 +0000 (10:17 +0200)]
tg-push: handle non-tgish branches

tg push died if you gave it a non-tgish branch:

$ tg push -r push-test master
fatal: Not a valid object name refs/top-bases/master
fatal: ambiguous argument '^{tree}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
fatal: Not a valid object name master:.topdeps

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agotg-push: prevent handing branches more than once to git-push
Bert Wesarg [Wed, 27 May 2009 08:16:35 +0000 (10:16 +0200)]
tg-push: prevent handing branches more than once to git-push

Doing otherwise can result in a lot of warnings and errors:

warning, no base found top-bases/master
warning, no base found top-bases/master
warning, no base found top-bases/master
warning, no base found top-bases/master
warning, no base found top-bases/master
warning, no base found top-bases/master
warning, no base found top-bases/master
warning, no base found top-bases/master
warning, no base found top-bases/master
warning, no base found top-bases/master
warning, no base found top-bases/master

error: Ref refs/heads/master is at b725fc951a37854fc65945ac5bcab3bc61ccbd94 but expected 0000000000000000000000000000000000000000
error: failed to lock refs/heads/master
error: Ref refs/heads/master is at b725fc951a37854fc65945ac5bcab3bc61ccbd94 but expected 0000000000000000000000000000000000000000
error: failed to lock refs/heads/master
error: Ref refs/heads/master is at b725fc951a37854fc65945ac5bcab3bc61ccbd94 but expected 0000000000000000000000000000000000000000
error: failed to lock refs/heads/master
error: Ref refs/heads/master is at b725fc951a37854fc65945ac5bcab3bc61ccbd94 but expected 0000000000000000000000000000000000000000
error: failed to lock refs/heads/master
error: Ref refs/heads/master is at b725fc951a37854fc65945ac5bcab3bc61ccbd94 but expected 0000000000000000000000000000000000000000
error: failed to lock refs/heads/master
error: Ref refs/heads/master is at b725fc951a37854fc65945ac5bcab3bc61ccbd94 but expected 0000000000000000000000000000000000000000
error: failed to lock refs/heads/master
error: Ref refs/heads/master is at b725fc951a37854fc65945ac5bcab3bc61ccbd94 but expected 0000000000000000000000000000000000000000
error: failed to lock refs/heads/master
error: Ref refs/heads/master is at b725fc951a37854fc65945ac5bcab3bc61ccbd94 but expected 0000000000000000000000000000000000000000
error: failed to lock refs/heads/master
error: Ref refs/heads/master is at b725fc951a37854fc65945ac5bcab3bc61ccbd94 but expected 0000000000000000000000000000000000000000
error: failed to lock refs/heads/master
error: Ref refs/heads/master is at b725fc951a37854fc65945ac5bcab3bc61ccbd94 but expected 0000000000000000000000000000000000000000
error: failed to lock refs/heads/master
error: Ref refs/heads/bw/log is at a16df35cc7009b36f6f71717ae3d9a3dc29987da but expected 0000000000000000000000000000000000000000
error: failed to lock refs/heads/bw/log
error: Ref refs/top-bases/bw/log is at b725fc951a37854fc65945ac5bcab3bc61ccbd94 but expected 0000000000000000000000000000000000000000
error: failed to lock refs/top-bases/bw/log

 ! [remote rejected] master -> master (failed to lock)
 ! [remote rejected] master -> master (failed to lock)
 ! [remote rejected] master -> master (failed to lock)
 ! [remote rejected] master -> master (failed to lock)
 ! [remote rejected] master -> master (failed to lock)
 ! [remote rejected] master -> master (failed to lock)
 ! [remote rejected] master -> master (failed to lock)
 ! [remote rejected] master -> master (failed to lock)
 ! [remote rejected] master -> master (failed to lock)
 ! [remote rejected] master -> master (failed to lock)
 ! [remote rejected] bw/log -> bw/log (failed to lock)
 ! [remote rejected] refs/top-bases/bw/log -> refs/top-bases/bw/log (failed to lock)

Note, the result is OK only the output is irritating.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agotg-push: remove useless warning about missing bases for non-tgish branches
Bert Wesarg [Wed, 27 May 2009 08:16:22 +0000 (10:16 +0200)]
tg-push: remove useless warning about missing bases for non-tgish branches

The call to ref_exists() isn't needed because $_dep_is_tgish from
recurse_deps() gives us exactly this information.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agotg-update: fix user visible typo in info msg
Ilpo Järvinen [Thu, 28 May 2009 06:04:33 +0000 (09:04 +0300)]
tg-update: fix user visible typo in info msg

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
10 years agotg-remote: don't add push specs but warn about existing ones.
Uwe Kleine-König [Wed, 13 May 2009 09:59:51 +0000 (11:59 +0200)]
tg-remote: don't add push specs but warn about existing ones.

topgit used to add some push specs to assert that topbases are pushed,
too.  This should now be handled by tg-push.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Marc Weber <marco-oweber@gmx.de>
Tested-and-acked-by: martin f. krafft <madduck@debian.org>
Cc: 528442@bugs.debian.org
10 years agotg-push: new command pushing a tgish branch
Marc Weber [Tue, 12 May 2009 08:54:51 +0000 (10:54 +0200)]
tg-push: new command pushing a tgish branch

It pushes recursively all deps and bases together with the branch.

Signed-off-by: Marc Weber <marco-oweber@gmx.de>
Tested-and-acked-by: martin f. krafft <madduck@madduck.net>
[ukleinek: fixed some nitpicks and changed remote handling]
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Marc Weber <marco-oweber@gmx.de>
10 years agorecurse_deps: if no_remotes is set don't recurse into remote deps
Uwe Kleine-König [Mon, 11 May 2009 20:32:54 +0000 (22:32 +0200)]
recurse_deps: if no_remotes is set don't recurse into remote deps

This is based on a patch by Marc Weber.  It will be used by tg-push.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Marc Weber <marco-oweber@gmx.de>
10 years agoremove test for git send-email
Uwe Kleine-König [Sun, 10 May 2009 21:59:46 +0000 (23:59 +0200)]
remove test for git send-email

This test didn't work as expected with certain pagers (e.g. vimpager)
when stdout is redirected to a non-terminal.  Now it's the actual call
to git send-email that generates a very similar error message.

Reported-by: Antonio Ospite <ospite@studenti.unina.it>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-and-tested-by: Antonio Ospite <ospite@studenti.unina.it>
10 years agodepend: don't disallow adding a dependency on a non-TopGit-branch
Uwe Kleine-König [Mon, 20 Apr 2009 09:42:53 +0000 (11:42 +0200)]
depend: don't disallow adding a dependency on a non-TopGit-branch

there is no techical reason not to depend on more than one
non-TopGit-branch.  You can argue if you want it though.  This patch
lets you decide if you want it or not.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years agohooks/pre-commit.sh: fix bashism
Uwe Kleine-König [Thu, 26 Mar 2009 08:52:26 +0000 (09:52 +0100)]
hooks/pre-commit.sh: fix bashism

This was introduced in fcb488d51e72c7414f9beb40ad06bf529b8b38dc.
A similar fix was suggested by martin f krafft, too.

Reported-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tested-by: Marc Kleine-Budde <mkl@pengutronix.de>
Acked-by: Bert Wesarg <bert.wesarg@googlemail.com>
Tested-by: Bert Wesarg <bert.wesarg@googlemail.com>
10 years agohooks/pre-commit.sh: don't stop commits on non-topgit branches
Uwe Kleine-König [Tue, 24 Mar 2009 21:16:48 +0000 (22:16 +0100)]
hooks/pre-commit.sh: don't stop commits on non-topgit branches

This is a regression introduced by c32d1dd4fcafad3f9c570adeda580a90d56

"${head_#refs/heads/#refs/top-bases#}" doesn't substitute refs/heads by
refs/top-bases, but strips the prefix of $head_ if it starts with
"refs/heads/#refs/top-bases#".

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years agodon't use return when being sourced
Uwe Kleine-König [Tue, 24 Mar 2009 20:46:23 +0000 (21:46 +0100)]
don't use return when being sourced

Fabien Thomas reports that a Bourne (not Again) sh on FreeBSD just
ignores the return and continues executing with the rest of the script.

So just wrap everything that was skipped by the return using other
shells in a big if instead.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Closes: http://bugs.debian.org/516188

10 years agohooks/pre-commit.sh: don't wail on detached head for missing .top* files
Uwe Kleine-König [Fri, 20 Mar 2009 19:40:07 +0000 (20:40 +0100)]
hooks/pre-commit.sh: don't wail on detached head for missing .top* files

This fixes a warning

fatal: ref HEAD is not a symbolic ref

when your HEAD is detached.

And branches under refs/top-bases/ don't need these files either.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years agoAdd GPLv2 and description for S-o-b
Uwe Kleine-König [Fri, 13 Mar 2009 09:18:17 +0000 (10:18 +0100)]
Add GPLv2 and description for S-o-b

The intend is to clearify the copyright situation.  I'm not a lawyer,
but it should now be better than before.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years agoCall git-rerere after a failing merge as git-merge does
Uwe Kleine-König [Sun, 8 Mar 2009 21:15:16 +0000 (22:15 +0100)]
Call git-rerere after a failing merge as git-merge does

This maybe does all the hard work for you ...

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years agoFix merge failure handling in tg export
Uwe Kleine-König [Sun, 8 Mar 2009 20:52:14 +0000 (21:52 +0100)]
Fix merge failure handling in tg export

There exist two problems that show that up to now the error handling was
completely untested:

  - tg.sh uses `set -e`, so `git merge $branch; retmerge=$?` obviously
    doesn't do the right thing.
  - in recurse_deps stdin is redirected from $_depsfile.  Starting a
    shell with that doesn't give the user any chance to do something.

Reported-by: "Bernhard R. Link" <brlink@debian.org>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years agoPass -- to diff-tree for branch/filename disambiguation
Uwe Kleine-König [Sat, 7 Mar 2009 20:01:30 +0000 (21:01 +0100)]
Pass -- to diff-tree for branch/filename disambiguation

Script to show the need of this patch:

mkdir ty;
cd ty;
git init-db;
touch a;
git add a;
git commit -m "...";
tg create bla;
git commit -m "...";
mkdir bla;
touch bla/blub;
git add bla/blub;
git commit -m "...";
tg export --quilt tt;

Reported-by: "Bernhard R. Link" <brlink@debian.org>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years agobump version number to 0.7
Uwe Kleine-König [Thu, 5 Mar 2009 10:29:07 +0000 (11:29 +0100)]
bump version number to 0.7

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years agoFix typo s/emmail/email/
Uwe Kleine-König [Tue, 3 Mar 2009 09:31:22 +0000 (10:31 +0100)]
Fix typo s/emmail/email/

This was introduced by a tired coder in d479474440713.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years agoMerge branch 'upstream' of git.debian.org:/git/collab-maint/topgit
Uwe Kleine-König [Tue, 3 Mar 2009 09:30:10 +0000 (10:30 +0100)]
Merge branch 'upstream' of git.debian.org:/git/collab-maint/topgit

10 years agoAdd documentation for tg export --linearize
Uwe Kleine-König [Tue, 3 Mar 2009 09:01:23 +0000 (10:01 +0100)]
Add documentation for tg export --linearize

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years agoDon't throw away already started base on resumed create.
Uwe Kleine-König [Sun, 1 Mar 2009 19:55:40 +0000 (20:55 +0100)]
Don't throw away already started base on resumed create.

The problem was that after a failure to create the patch base the
resuming tg create did reset HEAD to the next tree to merge in which is
the right thing for a pristine create.

This addresses Debian Bug #513018 and is based on a patch by the bug
reporter Gábor Braun.  A recipe triggering the bug is part of the report
that can be found at http://bugs.debian.org/513018.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years ago[TOPGIT] implement linearize export method
Uwe Kleine-König [Thu, 15 Jan 2009 21:45:57 +0000 (22:45 +0100)]
[TOPGIT] implement linearize export method

This is a draft that seems to work for my test case.  The error handling
is to be improved though.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years ago[TOPGIT] make creating a commit from a topgit branch a function
Uwe Kleine-König [Wed, 14 Jan 2009 20:26:18 +0000 (21:26 +0100)]
[TOPGIT] make creating a commit from a topgit branch a function

This helps avoiding code duplication for the next commit.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years ago[TOPGIT] make tg remote idempotent
Uwe Kleine-König [Wed, 14 Jan 2009 20:23:51 +0000 (21:23 +0100)]
[TOPGIT] make tg remote idempotent

Before this patch each call to tg remote added three config entries
no matter if they already existed.  After some time my .git/config was
crowded.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years ago[TOPGIT] allow working with annihilated branches
Uwe Kleine-König [Wed, 25 Feb 2009 19:44:11 +0000 (20:44 +0100)]
[TOPGIT] allow working with annihilated branches

If you decide that you want to drop a patch, you can just merge in its
base with strategy "theirs".  Then you have base=topic and so no .top*
files any more.  This patch fixes tg summary and the helper function
recurse_deps() to handle these annihilated branches as if they don't
exist and don't show up in .topdeps files.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years ago[TOPGIT] limit rev-list in branch_contains to a single rev
Uwe Kleine-König [Wed, 25 Feb 2009 10:05:00 +0000 (11:05 +0100)]
[TOPGIT] limit rev-list in branch_contains to a single rev

This eases reading of debug output using sh -x and probably helps
performance, too.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years agobump version number to 0.6
martin f. krafft [Fri, 23 Jan 2009 05:33:43 +0000 (16:33 +1100)]
bump version number to 0.6

10 years agoput tg version into a variable at the top
martin f. krafft [Fri, 23 Jan 2009 05:33:29 +0000 (16:33 +1100)]
put tg version into a variable at the top

10 years agotg-patch: add support for generating patches against worktree and index
Kirill Smelkov [Wed, 21 Jan 2009 20:18:42 +0000 (23:18 +0300)]
tg-patch: add support for generating patches against worktree and index

This implements `tg patch -i` and `tg patch -w` to see current patch as
generated against not-yet-committed index and worktree.

NOTE: unfortunately `git cat-file blob <file>` does not provide an option
to cat file from worktree (only from an object or from index), so I had to
unroll my own `cat file topic:file` with special support for '(i)' and
'(w)' topics.

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
10 years agotg-patch: fix pagination
Kirill Smelkov [Wed, 21 Jan 2009 20:18:42 +0000 (23:18 +0300)]
tg-patch: fix pagination

Previously, when I was invoking `tg patch` the following used to happen:

1. .topmsg content was sent directly to _terminal_
2. for each file in the patch, its diff was generated with `git diff`
   and sent to *PAGER*
3. trailing 'tg: ...' was sent to terminal again

So the problem is that while `tg patch >file` works as expected, plain
`tg patch` does not -- in pager there is only a part of the whole patch
(first file diff) and header and trailer are ommitted.

I've finally decided to fix this inconvenience, and the way it works is
like in git -- we just hook `setup_pager` function in commands which
need to be paginated.

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
10 years agoImplement setup_pager just like in git
Kirill Smelkov [Wed, 21 Jan 2009 20:18:42 +0000 (23:18 +0300)]
Implement setup_pager just like in git

setup_pager() spawns a pager process and redirect the rest of our output
to it.

This will be needed to fix `tg patch` output in the next commit.

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
10 years agomake tg remote idempotent
Uwe Kleine-König [Wed, 14 Jan 2009 20:23:51 +0000 (21:23 +0100)]
make tg remote idempotent

Before this patch each call to tg remote added three config entries
no matter if they already existed.  After some time my .git/config was
crowded.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 years agoCheck for git-send-email and die if not found
martin f. krafft [Wed, 21 Jan 2009 03:36:45 +0000 (14:36 +1100)]
Check for git-send-email and die if not found

Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agotg-completion: complete options for `tg remote`
Kirill Smelkov [Mon, 5 Jan 2009 15:08:20 +0000 (18:08 +0300)]
tg-completion: complete options for `tg remote`

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agotg-completion: complete options for `tg summary`
Kirill Smelkov [Mon, 5 Jan 2009 15:08:19 +0000 (18:08 +0300)]
tg-completion: complete options for `tg summary`

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agotg export (quilt): Implement numbering the patches
Uwe Kleine-König [Fri, 19 Dec 2008 22:21:48 +0000 (23:21 +0100)]
tg export (quilt): Implement numbering the patches

To ease sending patches, with --numbered each patch gets a number prefix
similar to the output of git format-patch.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agotg export (quilt): Implement flattening patch paths
Uwe Kleine-König [Fri, 19 Dec 2008 21:40:33 +0000 (22:40 +0100)]
tg export (quilt): Implement flattening patch paths

The result of providing the new flag --flatten is that the exported
patches are all placed directly in the output directory, not in
subdirectories below it.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agotg export (collapse): implement skipping empty patches
Uwe Kleine-König [Fri, 19 Dec 2008 21:18:37 +0000 (22:18 +0100)]
tg export (collapse): implement skipping empty patches

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agoREADME: spelling fixes
Jonas Fonseca [Tue, 2 Dec 2008 07:45:46 +0000 (08:45 +0100)]
README: spelling fixes

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agotg-summary: -t and --graphviz are mutual exclusive
Bert Wesarg [Wed, 26 Nov 2008 18:39:45 +0000 (19:39 +0100)]
tg-summary: -t and --graphviz are mutual exclusive

The -t and --graphviz don't work together, the output is not what one expect.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agotg-export: implement skipping empty patches for quilt mode
Uwe Kleine-König [Wed, 26 Nov 2008 12:13:00 +0000 (13:13 +0100)]
tg-export: implement skipping empty patches for quilt mode

addionally fix the README item for skipping the export of empty patches
not to need an option (-n) as this should be the default.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agoPass -- to rev-list for branch/filename disambiguation
Marc Weber [Fri, 21 Nov 2008 09:05:30 +0000 (10:05 +0100)]
Pass -- to rev-list for branch/filename disambiguation

While playing around it happened that I called the topic branch and
a file "foo"... Here is a small incomplete patch: I've not tried to
catch all of these errors..

Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agoAdd Vim modelines for consistent spacing
martin f. krafft [Thu, 20 Nov 2008 14:46:05 +0000 (15:46 +0100)]
Add Vim modelines for consistent spacing

TopGit shell scripts use tabs and this commit instructs Vim via modeline not
to expand tabs.

Signed-off-by: martin f. krafft <madduck@debian.org>
Acked-by: Petr Baudis <pasky@ucw.cz>
10 years agoNote that do_help is used when short messages might be wanted
martin f. krafft [Thu, 20 Nov 2008 14:24:16 +0000 (15:24 +0100)]
Note that do_help is used when short messages might be wanted

From http://marc.info/?l=git&m=122718711327376&w=2, by Petr:

  Note that I think these changes are reasonable only as long as do_help
  is just a short two-line usage help; in the event we also implement a
  longer help, it certainly shouldn't be printed in these cases.

This commit adds a comment to the do_help function to remind us.

Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agoPrint help message when command is not proper
martin f. krafft [Thu, 20 Nov 2008 14:06:19 +0000 (15:06 +0100)]
Print help message when command is not proper

When invoked with an unknown subcommand, or when --help is sought for
a command that does not exist, TopGit prints the help message.

Signed-off-by: martin f. krafft <madduck@debian.org>
Acked-by: Petr Baudis <pasky@suse.cz>
10 years agoRequire an argument to tg -r
martin f. krafft [Thu, 20 Nov 2008 14:04:48 +0000 (15:04 +0100)]
Require an argument to tg -r

Right now, if -r is passed to tg, an ugly shift error occurs. This patch
checks for that case and outputs the help message if it occurs.

Signed-off-by: martin f. krafft <madduck@debian.org>
Acked-by: Petr Baudis <pasky@suse.cz>
10 years agoPrint help output when no command is given
martin f. krafft [Wed, 19 Nov 2008 15:10:23 +0000 (16:10 +0100)]
Print help output when no command is given

As much as I love your message (although you really ought not be
throwing around ducks!), this is more user-friendly.

Signed-off-by: martin f. krafft <madduck@debian.org>
Acked-by: Petr Baudis <pasky@suse.cz>
10 years agoCheck for cmddir earlier
martin f. krafft [Wed, 19 Nov 2008 15:08:02 +0000 (16:08 +0100)]
Check for cmddir earlier

Without cmddir, tg is basically useless, even do_help() needs it, so
check it first and die hard if not found

Signed-off-by: martin f. krafft <madduck@debian.org>
Acked-by: Petr Baudis <pasky@suse.cz>
10 years agoChange tg help exit code to 0
martin f. krafft [Wed, 19 Nov 2008 15:07:02 +0000 (16:07 +0100)]
Change tg help exit code to 0

Printing --help is not an error, but a successful operation, if the help
output could be printed.

Signed-off-by: martin f. krafft <madduck@debian.org>
Acked-by: Petr Baudis <pasky@suse.cz>
10 years agoadd ignore patterns for quilt and debian build
martin f. krafft [Wed, 19 Nov 2008 14:44:15 +0000 (15:44 +0100)]
add ignore patterns for quilt and debian build

Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agoMake sure gitignore patterns are not recursive
martin f. krafft [Wed, 19 Nov 2008 14:42:47 +0000 (15:42 +0100)]
Make sure gitignore patterns are not recursive

10 years agoremove +x bit from tg-depend
martin f. krafft [Wed, 19 Nov 2008 14:20:16 +0000 (15:20 +0100)]
remove +x bit from tg-depend

10 years agoignore tg-depend build files
martin f. krafft [Mon, 17 Nov 2008 21:57:35 +0000 (22:57 +0100)]
ignore tg-depend build files

Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agoUpdate version in tg script to 0.5
martin f. krafft [Mon, 17 Nov 2008 21:34:13 +0000 (22:34 +0100)]
Update version in tg script to 0.5

Signed-off-by: martin f. krafft <madduck@debian.org>
10 years agoMake sure $root_dir does not have a trailing slash
Matt McDonald [Fri, 14 Nov 2008 00:15:37 +0000 (19:15 -0500)]
Make sure $root_dir does not have a trailing slash

This adds support for using 'tg create' from within a subdirectory.

Apparently, git doesn't seem a do a good job of normalizing paths.
When topgit tries to add a new .topdeps file in a newly created
branch, git bails out with:

$ tg create new-branch
tg: Automatically marking dependency on old-branch
tg: Creating new-branch base from old-branch...
Switched to a new branch "new-branch"
(here, tg tries to do:  git add ../../..//.topdeps)

fatal: pathspec '/.topdeps' did not match any files

Since $root_dir is used everywhere like: "$root_dir/.topdeps", this
patch tries to make sure that $root_dir never has the trailing slash
so it always produces safe paths.

Signed-off-by: martin f. krafft <madduck@madduck.net>
10 years agotg depend: Allow adding deps from a subdir inside the repo.
Matt McDonald [Sat, 8 Nov 2008 19:01:02 +0000 (14:01 -0500)]
tg depend: Allow adding deps from a subdir inside the repo.

10 years agotg-export: no current branch check with -b
martin f. krafft [Fri, 26 Sep 2008 19:17:12 +0000 (21:17 +0200)]
tg-export: no current branch check with -b

When --quilt .. -b is given, TopGit dies with

  piper:../pkg/topgit/topgit|build|% tg export --quilt -b debian/locations debian/patches
  tg: fatal: not on a TopGit-controlled branch

which is a little too restrictive as we don't have to be on a tg branch with
-b. This patch simply removes this check if -b has been passed.

Signed-off-by: martin f. krafft <madduck@madduck.net>
10 years agotg-mail: do not use arrays, which are bashisms
martin f. krafft [Fri, 26 Sep 2008 19:04:19 +0000 (21:04 +0200)]
tg-mail: do not use arrays, which are bashisms

tg-mail uses shell arrays for the people array, which are not supported by
POSIX. The script runs as /bin/sh, so it cannot assume non-POSIX features.
This patch reimplements the array population with a POSIX-compliant approach.

Signed-off-by: martin f. krafft <madduck@madduck.net>
10 years agoTopGit: Force adding .topdeps on tg-depend
Antonio Ospite [Tue, 28 Oct 2008 17:54:14 +0000 (18:54 +0100)]
TopGit: Force adding .topdeps on tg-depend

Force adding .topdeps, overcomes the case when .* is in .gitignore

Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
10 years agoTopGit: small Makefile nitpichink
Antonio Ospite [Fri, 24 Oct 2008 10:54:24 +0000 (12:54 +0200)]
TopGit: small Makefile nitpichink

Make 'prefix' replacement more explicit using ?=

Use simple substitution assignment := when there are some expansions in
place.  This is a good practice to speed up builds, maybe not particularly
useful with such a simple Makefile.

Signed-off-by: Antonio Ospite <ospite@studenti.unina.it>
10 years agoREADME: tg depend rm TODO (insp. by Jonas)
Petr Baudis [Fri, 7 Nov 2008 21:16:37 +0000 (22:16 +0100)]
README: tg depend rm TODO (insp. by Jonas)

10 years agotg summary --graphviz: Dot-suitable dependency graph
Petr Baudis [Thu, 16 Oct 2008 10:35:16 +0000 (12:35 +0200)]
tg summary --graphviz: Dot-suitable dependency graph

Inspired by Antonio Ospite <ospite@studenti.unina.it>'s tg-graphviz.sh.

10 years agoREADME: lever -> level (spotted by jikos)
Petr Baudis [Thu, 16 Oct 2008 10:10:29 +0000 (12:10 +0200)]
README: lever -> level (spotted by jikos)

10 years agotg export: Clarify usage
Petr Baudis [Fri, 3 Oct 2008 15:23:08 +0000 (17:23 +0200)]
tg export: Clarify usage

10 years agotg mail -r MSGID: Generate In-reply-to header
Petr Baudis [Fri, 3 Oct 2008 15:22:56 +0000 (17:22 +0200)]
tg mail -r MSGID: Generate In-reply-to header

10 years agotg update: Always checkout head, even if we didn't update base further
Petr Baudis [Thu, 2 Oct 2008 11:09:14 +0000 (13:09 +0200)]
tg update: Always checkout head, even if we didn't update base further

10 years agotg update: Fix bogus advice on failed base update
Petr Baudis [Thu, 25 Sep 2008 18:50:36 +0000 (20:50 +0200)]
tg update: Fix bogus advice on failed base update

10 years agotg import: More graceful conflicts handling
Petr Baudis [Thu, 25 Sep 2008 18:50:25 +0000 (20:50 +0200)]
tg import: More graceful conflicts handling

10 years agotg import: Construct actually proper .topmsg file
Petr Baudis [Thu, 25 Sep 2008 18:14:51 +0000 (20:14 +0200)]
tg import: Construct actually proper .topmsg file

10 years agotg import -s: Whitespace fix
Petr Baudis [Thu, 25 Sep 2008 18:11:57 +0000 (20:11 +0200)]
tg import -s: Whitespace fix

10 years agotg import -d: Explicitly specify base dependency of the created branches
Petr Baudis [Thu, 25 Sep 2008 18:11:38 +0000 (20:11 +0200)]
tg import -d: Explicitly specify base dependency of the created branches

10 years agotg import -s: Import single commit using well-defined name
Petr Baudis [Thu, 25 Sep 2008 18:06:57 +0000 (20:06 +0200)]
tg import -s: Import single commit using well-defined name

10 years agotg mail: Fix $header string construction
Petr Baudis [Thu, 25 Sep 2008 16:55:28 +0000 (18:55 +0200)]
tg mail: Fix $header string construction

Prevents e.g. misinterpreting From: line at the body start.

10 years agotg-completion: Use tg summary -t for __tg_topics()
Petr Baudis [Thu, 25 Sep 2008 14:55:41 +0000 (16:55 +0200)]
tg-completion: Use tg summary -t for __tg_topics()

10 years agotg summary -t: Very quick mode, only branch names
Petr Baudis [Thu, 25 Sep 2008 14:55:09 +0000 (16:55 +0200)]
tg summary -t: Very quick mode, only branch names

10 years agoComplete depend subcommand
Jonas Fonseca [Thu, 25 Sep 2008 13:47:06 +0000 (15:47 +0200)]
Complete depend subcommand

Also, removes a debug line and fixes the script header.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
10 years agotg depend: Even more robust subcommand handling
Petr Baudis [Thu, 25 Sep 2008 13:26:05 +0000 (15:26 +0200)]
tg depend: Even more robust subcommand handling

10 years agodepend: Fix help listing
Jonas Fonseca [Thu, 25 Sep 2008 10:50:40 +0000 (12:50 +0200)]
depend: Fix help listing

Without this `tg help depend` causes all kinds of trouble such as adding
empty lines to .topdeps.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
10 years agoAdd bash completion script for TopGit
Jonas Fonseca [Thu, 25 Sep 2008 11:06:56 +0000 (13:06 +0200)]
Add bash completion script for TopGit

The script is based on git's bash completion script.

Signed-off-by: Jonas Fonseca <fonseca@diku.dk>
10 years agoREADME: Add warning about editing .topdeps manually
Petr Baudis [Thu, 25 Sep 2008 13:16:57 +0000 (15:16 +0200)]
README: Add warning about editing .topdeps manually

10 years agoTopGit-0.4
Petr Baudis [Thu, 25 Sep 2008 00:03:49 +0000 (02:03 +0200)]
TopGit-0.4

10 years agotg export: With quilt driver, accept explicit list of branches
Petr Baudis [Thu, 25 Sep 2008 00:03:02 +0000 (02:03 +0200)]
tg export: With quilt driver, accept explicit list of branches

10 years agotg mail -s SEND_EMAIL_ARGS: Pass arguments to git send-email
Petr Baudis [Wed, 24 Sep 2008 23:33:24 +0000 (01:33 +0200)]
tg mail -s SEND_EMAIL_ARGS: Pass arguments to git send-email

10 years agotg update: Fix resume message
Petr Baudis [Wed, 24 Sep 2008 20:20:57 +0000 (22:20 +0200)]
tg update: Fix resume message

10 years agotg depend add: Add dependency
Petr Baudis [Wed, 24 Sep 2008 17:03:29 +0000 (19:03 +0200)]
tg depend add: Add dependency

10 years agotg delete: Fix spurious output
Petr Baudis [Mon, 22 Sep 2008 16:58:57 +0000 (18:58 +0200)]
tg delete: Fix spurious output

10 years agotg export: Fix exporting remote-based branches
Petr Baudis [Mon, 22 Sep 2008 16:52:57 +0000 (18:52 +0200)]
tg export: Fix exporting remote-based branches

10 years agotg mail: Simplify array usage
Petr Baudis [Mon, 22 Sep 2008 15:46:38 +0000 (17:46 +0200)]
tg mail: Simplify array usage

10 years agotg mail: Tidyup
Petr Baudis [Mon, 22 Sep 2008 15:44:49 +0000 (17:44 +0200)]
tg mail: Tidyup

10 years agotg mail: new command for mailing patches
Kirill Smelkov [Fri, 19 Sep 2008 09:08:21 +0000 (13:08 +0400)]
tg mail: new command for mailing patches

Petr, since you've asked for help on this, here you are:

    $ tg mail [NAME]

a simple script to send one patch over email.

All it does is

    - call `tg patch` for actual patch preparation
    - extract email addresses from whom and where to send a mail
    - boils down to `git send-email`

It is self-hosted -- this mail was send by me with

    $ tg mail t/tg-mail

P.S. I'm not a bash guy, please do not beat me too much...

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
10 years agotg import: fix + make more robust
Kirill Smelkov [Thu, 18 Sep 2008 16:29:30 +0000 (20:29 +0400)]
tg import: fix + make more robust

a5bf892d0900cbf9949f628c3e05db599341a02c (tg import: Check out new files
as we go) broke tg-import. This is how it fails after that change:

    $ tg import Z~~..Z
    tg: ---- Importing e3e8c1382fe4cedca31e955910914ae0033455eb to t/Z
    tg: Automatically marking dependency on master
    tg: Creating t/Z base from master...
    Switched to a new branch "t/Z"
    tg: Topic branch t/Z set up. Please fill .topmsg now and make initial commit.
    tg: To abort: git rm -f .top* && git checkout master && tg delete t/Z
    fatal: pathspec '.topdeps' did not match any files

That's why, when we do git read-tree -u -m it _kills_ .topmsg and
.topdep both in index and in working tree!

Also, imagine that we are going to import patch C onto A

o---B---A
     \
      C

With read-tree we'll *override* any change in common files between A and
B, so I think read-tree is wrong here (it was ok if we are importing
on top of B).

What is right it seems, is to work on diff level -- to use cherry-pick.
And since cherry-pick does not kill our already-in-index .topmsg and
.topdeps we automatically fix the breakage.

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
10 years agotg help: <something>: improve readability
Kirill Smelkov [Thu, 18 Sep 2008 16:29:29 +0000 (20:29 +0400)]
tg help: <something>: improve readability

Previously tg help was not showing Usage line, and with this change, now it
looks like e.g.:

$ tg help import
Usage: tg [...] import [-p PREFIX] RANGE...

        Import commits within the given revision range into TopGit,
        creating one topic branch per commit, the dependencies forming
        a linear sequence starting on your current branch.

        The branch names are auto-guessed from the commit messages
        and prefixed by t/ by default; use '-p PREFIX' to specify
        an alternative prefix (even an empty one).

Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
10 years agoUse git-mailinfo to extract author informations from .topmsg
Uwe Kleine-König [Fri, 19 Sep 2008 21:27:57 +0000 (23:27 +0200)]
Use git-mailinfo to extract author informations from .topmsg

This has the benefit that the [PATCH] prefixes are stripped and so it
might help to prevent you sending mails with two prefixes.  (As happend
to me after I git-format-patch'd an exported series and sent it out with
git-send-email.)

Moreover it should make the code more robust and it allows to remove a
helper function.
And it allows you to set add a Date: line to .topmsg which is then used
as author date.

Signed-off-by: Uwe Kleine-König <ukleinek@strlen.de>
10 years agoIgnore vim swp files
Petr Baudis [Mon, 22 Sep 2008 15:28:26 +0000 (17:28 +0200)]
Ignore vim swp files

10 years agotg info, tg patch: Work on top-base HEAD too
Petr Baudis [Mon, 22 Sep 2008 15:24:25 +0000 (17:24 +0200)]
tg info, tg patch: Work on top-base HEAD too

10 years agotg info: Carry over missing Subject line in topmsg
Petr Baudis [Mon, 22 Sep 2008 10:48:40 +0000 (12:48 +0200)]
tg info: Carry over missing Subject line in topmsg

10 years agotg remote README: Add 'git push --all' caveat warning
Petr Baudis [Sun, 14 Sep 2008 19:01:05 +0000 (21:01 +0200)]
tg remote README: Add 'git push --all' caveat warning