chiark / gitweb /
topgit.git
8 years agoLet tg-update take a branch parameter
Bert Wesarg [Sun, 3 Oct 2010 21:25:52 +0000 (23:25 +0200)]
Let tg-update take a branch parameter

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoAdd pointer about the problems regarding tg depend rm to README
Olaf Dabrunz [Mon, 6 Sep 2010 00:02:54 +0000 (02:02 +0200)]
Add pointer about the problems regarding tg depend rm to README

Signed-off-by: Olaf Dabrunz <odabrunz@gmx.net>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoIndicate the current branch in "tg summary --graphviz"
Per Cederqvist [Sun, 3 Oct 2010 21:41:45 +0000 (23:41 +0200)]
Indicate the current branch in "tg summary --graphviz"

Give the current branch a yellow background in the output of
"tg summary --graphviz".

Signed-off-by: Per Cederqvist <ceder@lysator.liu.se>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoImplement "tg summary --deps" as a shell function.
Per Cederqvist [Sun, 3 Oct 2010 21:37:52 +0000 (23:37 +0200)]
Implement "tg summary --deps" as a shell function.

This avoids running "$tg summary --deps" from all commands that need
that information internally.

Signed-off-by: Per Cederqvist <ceder@lysator.liu.se>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoDo basic error checking in "tg depend add"
Per Cederqvist [Mon, 6 Sep 2010 05:12:16 +0000 (07:12 +0200)]
Do basic error checking in "tg depend add"

Check for the following errors:

 - Working on a non-TopGit branch.
 - Adding a branch as a dependency of itself.
 - Adding a dependency that introduces a loop.
 - Adding a dependency that already exists.

Signed-off-by: Per Cederqvist <ceder@lysator.liu.se>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoRefactor tg summary
Per Cederqvist [Mon, 6 Sep 2010 05:12:16 +0000 (07:12 +0200)]
Refactor tg summary

Break out the normal processing performed when no options are given to
a shell function.

Signed-off-by: Per Cederqvist <ceder@lysator.liu.se>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoFix pretty_tree to work in a subdirectory
Uwe Kleine-König [Tue, 24 Aug 2010 18:56:06 +0000 (20:56 +0200)]
Fix pretty_tree to work in a subdirectory

Without this change a freshly exported branch contains the .top* files
when tg export was started from a subdirectory.

Reported-by: Per Cederqvist <ceder@lysator.liu.se>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoGeneralize subcommand selection in "tg depend"
Per Cederqvist [Tue, 24 Aug 2010 18:32:39 +0000 (20:32 +0200)]
Generalize subcommand selection in "tg depend"

Prepare "tg depend" for new subcommands by moving the implementation
of "tg add" to a function.

Signed-off-by: Per Cederqvist <ceder@lysator.liu.se>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoAdd "tg base" that prints the base version.
Per Cederqvist [Tue, 24 Aug 2010 18:32:05 +0000 (20:32 +0200)]
Add "tg base" that prints the base version.

Signed-off-by: Per Cederqvist <ceder@lysator.liu.se>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoIgnore Emacs auto-save files
Per Cederqvist [Tue, 24 Aug 2010 18:32:06 +0000 (20:32 +0200)]
Ignore Emacs auto-save files

Signed-off-by: Per Cederqvist <ceder@lysator.liu.se>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoOrder .gitignore alphabetically
Uwe Kleine-König [Tue, 24 Aug 2010 18:39:35 +0000 (20:39 +0200)]
Order .gitignore alphabetically

This should reduce merge conflicts for commits that add entries (at
least after this commit is handled :-)

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoDon't implement the usage message of tg depend more than once
Per Cederqvist [Tue, 24 Aug 2010 18:32:38 +0000 (20:32 +0200)]
Don't implement the usage message of tg depend more than once

The implmentation of "tg depend" had the usage message in two places.
Fixed by creating a usage function, so that there is a single place
to edit if the usage changes.

Signed-off-by: Per Cederqvist <ceder@lysator.liu.se>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoAdded the --deps option to "tg summary".
Per Cederqvist [Wed, 14 Jul 2010 16:21:15 +0000 (18:21 +0200)]
Added the --deps option to "tg summary".

The --deps option can be used by scripts that need to know
the dependencies between the topic branches.

Signed-off-by: Per Cederqvist <ceder@lysator.liu.se>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
8 years agoImplemented "tg summary --sort".
Per Cederqvist [Wed, 14 Jul 2010 16:21:02 +0000 (18:21 +0200)]
Implemented "tg summary --sort".

This uses tsort to sort the branches based on their dependency graph.
Note: only a single sort order that fulfills the dependency graph is
printed.  There may be many other possible orderings.

A graphical text view would be much more useful, but this is till
a lot better than nothing.

Signed-off-by: Per Cederqvist <ceder@lysator.liu.se>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agotg patch: treat all files as ascii
Uwe Kleine-König [Wed, 25 Mar 2009 17:21:04 +0000 (18:21 +0100)]
tg patch: treat all files as ascii

This fixes patching binary files, for a problem case check out
http://bugs.debian.org/521173 .

Closes: http://bugs.debian.org/521173
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agotg mail: document config setting to prevent unintended mass mail sending
Uwe Kleine-König [Sat, 10 Apr 2010 13:24:47 +0000 (15:24 +0200)]
tg mail: document config setting to prevent unintended mass mail sending

Addresses: http://bugs.debian.org/506306
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agoDon't call pre-commit hook if tg is not installed
Carsten Hey [Sat, 10 Apr 2010 13:20:10 +0000 (15:20 +0200)]
Don't call pre-commit hook if tg is not installed

Signed-off-by: Carsten Hey <carsten@debian.org>
Closes: http://bugs.debian.org/576221
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agotg-delete: Handle the case where the branch has been removed already, but the base...
Thomas Schwinge [Sun, 28 Feb 2010 11:39:34 +0000 (12:39 +0100)]
tg-delete: Handle the case where the branch has been removed already, but the base is still left.

A user might have used 'git branch -D B' to remove the branch B, and then
certain TopGit commands complain, because the base of branch B is still there.

Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agotg-mail: Properly quote argument to --in-reply-to
Thomas Schwinge [Sun, 28 Feb 2010 13:24:08 +0000 (14:24 +0100)]
tg-mail: Properly quote argument to --in-reply-to

Message-Ids usually contain < and >.  These need to be quoted.

Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agotg-push: Filter out plain SHA1s from being pushed.
Thomas Schwinge [Sun, 28 Feb 2010 13:57:41 +0000 (14:57 +0100)]
tg-push: Filter out plain SHA1s from being pushed.

Otherwise, problems arise when branches depend (via .topdeps) on SHA1s:

    $ tg push -r tmp t/____longjmp_chk_cleanup_linux_x86_64
    fatal: 77c84aeb81808c3109665949448dba59965c391e cannot be resolved to branch.
    fatal: The remote end hung up unexpectedly

Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agoMake 'tg patch' work in subdirectories
Michal Sojka [Tue, 2 Feb 2010 10:31:12 +0000 (11:31 +0100)]
Make 'tg patch' work in subdirectories

When 'tg patch' is called from a subdirectory, it outputs only the
commit message and no diff.

Signed-off-by: Michal Sojka <sojkam1@fel.cvut.cz>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agoquote $LESS in case it includes spaces
martin f. krafft [Tue, 27 Oct 2009 18:43:15 +0000 (19:43 +0100)]
quote $LESS in case it includes spaces

Signed-off-by: martin f. krafft <madduck@debian.org>
9 years agodeal with single quotes in from/to headers
martin f. krafft [Tue, 27 Oct 2009 18:43:37 +0000 (19:43 +0100)]
deal with single quotes in from/to headers

Signed-off-by: martin f. krafft <madduck@debian.org>
9 years agobump version number to 0.8
Uwe Kleine-König [Wed, 23 Sep 2009 09:08:14 +0000 (11:08 +0200)]
bump version number to 0.8

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
9 years agoFix tg export --quilt --numbered w/ > 8 patches
Jon Ringle [Wed, 16 Sep 2009 15:39:24 +0000 (11:39 -0400)]
Fix tg export --quilt --numbered w/ > 8 patches

Creating a quilt patch series with more than 8 patches with:
tg export --quilt --numbered patchdir

Causes the following error to be produced:
eval: 1: arithmetic expression: expecting EOF: "0008 + 1"

This is due to the leading 0 and the $(()) evaluates as octal rather
than decimal.

Add the leading zeros only to the filename, not the number itself.

Signed-off-by: Jon Ringle <jon@ringle.org>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
10 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>
10 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>
10 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>
10 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>
10 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>
10 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