chiark / gitweb /
topgit.git
12 years agoMerge commit 'refs/top-bases/fixes/tg--r-require-arg' into fixes/tg--r-require-arg fixes/tg--r-require-arg
Ian Jackson [Wed, 28 Dec 2011 01:56:26 +0000 (01:56 +0000)]
Merge commit 'refs/top-bases/fixes/tg--r-require-arg' into fixes/tg--r-require-arg

13 years agoMerge commit 'index-wt~2' of git://repo.or.cz/topgit/bertw upstream features/vim-modelines fixes/ensure-worktree fixes/export--b-deps fixes/independent-help fixes/more-help fixes/tg--r-require-arg
Uwe Kleine-König [Sun, 26 Dec 2010 12:20:26 +0000 (13:20 +0100)]
Merge commit 'index-wt~2' of git://repo.or.cz/topgit/bertw

13 years agotg-prev/tg-next: commands to explore dependencies
Bert Wesarg [Fri, 8 Oct 2010 07:32:36 +0000 (09:32 +0200)]
tg-prev/tg-next: commands to explore dependencies

Two new commands to explore the dependencies of TopGit branches:

  a) tg prev [-i | -w] [NAME]
     outputs the dependencies of NAME

  b) tg next [-i | -w] [NAME]
     outputs branches which depends on NAME

Obviously, quilt next was the inspiration.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
13 years agotg-mail: accept -i/-w
Bert Wesarg [Sat, 9 Oct 2010 20:52:19 +0000 (22:52 +0200)]
tg-mail: accept -i/-w

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
13 years agotg-summary: accept -i/-w
Bert Wesarg [Thu, 7 Oct 2010 21:05:08 +0000 (23:05 +0200)]
tg-summary: accept -i/-w

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
13 years agolist_deps: accept -i/-w
Bert Wesarg [Tue, 26 Oct 2010 21:15:55 +0000 (23:15 +0200)]
list_deps: accept -i/-w

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
13 years agotg-patch: use pretty_tree and diff-tree to generate the patch
Bert Wesarg [Mon, 8 Nov 2010 07:25:33 +0000 (08:25 +0100)]
tg-patch: use pretty_tree and diff-tree to generate the patch

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
13 years agobranch_empty: use pretty_tree and therefore respect -i/-w
Bert Wesarg [Thu, 7 Oct 2010 19:54:22 +0000 (21:54 +0200)]
branch_empty: use pretty_tree and therefore respect -i/-w

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
13 years agotg-files: simplify arg checking and add sanity check for -i/-w
Bert Wesarg [Mon, 8 Nov 2010 07:26:28 +0000 (08:26 +0100)]
tg-files: simplify arg checking and add sanity check for -i/-w

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
13 years agotg-export: use pretty_tree -b for base
Bert Wesarg [Mon, 8 Nov 2010 07:25:10 +0000 (08:25 +0100)]
tg-export: use pretty_tree -b for base

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
13 years agocat_file: take -i/-w parameters
Bert Wesarg [Wed, 20 Oct 2010 20:17:47 +0000 (22:17 +0200)]
cat_file: take -i/-w parameters

This changes the way how cat_file selects the source of the file. It
accepts an optional parameter which is either -i or -w and will react on this
instead of the branch name. tg-patch is updated accordingly and can now
accepts the current branch name as argument with -i or -w given.

cat_file was also broken for the worktree case when we are not in the top level.

Also, tg-patch allowed to be on the top-base branch, but -i and -w doesn't
make sense there too.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoprovide a global temporary directory
Bert Wesarg [Wed, 20 Oct 2010 20:17:46 +0000 (22:17 +0200)]
provide a global temporary directory

The standard procedure 'tmp=mktemp; trap "rm $tmp" 0' was broken with the
introduction of the pager. Which overwrites the trap itself to close and
remove the pager fifo.

Now tg provides a temp playground and all other temp files should be created
inside this directory and only this directory will be removed with the exit
trap. setup_pager still overwrites the trap, but keeps the rm command from
the global temp directory. To simplify this the new function get_temp() is
provided.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoREADME: clearify note describing short-comings of tg log
Uwe Kleine-König [Tue, 2 Nov 2010 20:54:21 +0000 (21:54 +0100)]
README: clearify note describing short-comings of tg log

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agotg-files: list files changed by the topic branch
Bert Wesarg [Mon, 4 Oct 2010 18:27:47 +0000 (20:27 +0200)]
tg-files: list files changed by the topic branch

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>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agohooks/pre-commit: check for deps repetitions
Bert Wesarg [Mon, 4 Oct 2010 21:22:17 +0000 (23:22 +0200)]
hooks/pre-commit: check for deps repetitions

A dep should only be listed once in .topdeps, force this.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agohooks/pre-commit: check .topdeps for valid branches
Bert Wesarg [Mon, 4 Oct 2010 21:18:50 +0000 (23:18 +0200)]
hooks/pre-commit: check .topdeps for valid branches

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agohooks/pre-commit: check for cycles in dependencies
Bert Wesarg [Mon, 4 Oct 2010 21:07:27 +0000 (23:07 +0200)]
hooks/pre-commit: check for cycles in dependencies

We need only to consider newly added dependencies.  For each of these deps we
need to check if there is a path from this dep to the current HEAD.

We use recursive_dep() for this task.  Even if recursive_dep() uses a DFS
traversal it will not run into an endless loop if there would be a cycle,
because recursive_dep() takes .topdeps only from committed trees.  And we
require that the committed dependency graph has no cycles.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agohooks/pre-commit: check .top* files in the to-be-commited tree
Bert Wesarg [Mon, 4 Oct 2010 18:54:57 +0000 (20:54 +0200)]
hooks/pre-commit: check .top* files in the to-be-commited tree

We currently check fo these files only in the working tree. But we should check
what would be commited. We use write-tree to be able to utilize ls-tree and
check the result.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agotg.sh: simplify cat_file
Bert Wesarg [Mon, 4 Oct 2010 18:47:01 +0000 (20:47 +0200)]
tg.sh: simplify cat_file

Use shell parameter expansion to strip the leading (w): and (i)

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoREADME: move note about shortcomings of using --first-parent from tg base to tg log
Bert Wesarg [Mon, 4 Oct 2010 19:06:29 +0000 (21:06 +0200)]
README: move note about shortcomings of using --first-parent from tg base to tg log

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agotg-log: short cut to git log
Bert Wesarg [Sun, 3 Oct 2010 21:25:57 +0000 (23:25 +0200)]
tg-log: short cut to git log

A short cut to show the history of a named topgit branch.  Additional options
to git log can be given after a '--'.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agoput die() messages to stderr
Bert Wesarg [Sun, 3 Oct 2010 21:25:56 +0000 (23:25 +0200)]
put die() messages to stderr

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 years agotg-remote: use default remote if none is given
Bert Wesarg [Sun, 3 Oct 2010 21:25:53 +0000 (23:25 +0200)]
tg-remote: use default remote if none is given

This is useful if the remote has new topics and you need to populate the local
top-bases.

Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
13 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>
13 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>
13 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>
13 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>
13 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>
13 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>
13 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>
13 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>
13 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>
13 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>
13 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>
13 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>
13 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>
13 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>
13 years agoMerge commit 'refs/top-bases/fixes/tg--r-require-arg' into fixes/tg--r-require-arg
Carsten Hey [Mon, 26 Apr 2010 08:19:00 +0000 (10:19 +0200)]
Merge commit 'refs/top-bases/fixes/tg--r-require-arg' into fixes/tg--r-require-arg

* commit 'refs/top-bases/fixes/tg--r-require-arg': (31 commits)
  tg patch: treat all files as ascii
  tg mail: document config setting to prevent unintended mass mail sending
  Don't call pre-commit hook if tg is not installed
  tg-delete: Handle the case where the branch has been removed already, but the base is still left.
  tg-mail: Properly quote argument to --in-reply-to
  tg-push: Filter out plain SHA1s from being pushed.
  Make 'tg patch' work in subdirectories
  quote $LESS in case it includes spaces
  deal with single quotes in from/to headers
  bump version number to 0.8
  Fix tg export --quilt --numbered w/ > 8 patches
  tg-push: add bash completion
  help: use pager
  tg-push: handle non-tgish branches
  tg-push: prevent handing branches more than once to git-push
  tg-push: remove useless warning about missing bases for non-tgish branches
  tg-update: fix user visible typo in info msg
  tg-remote: don't add push specs but warn about existing ones.
  tg-push: new command pushing a tgish branch
  recurse_deps: if no_remotes is set don't recurse into remote deps
  ...

14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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>
14 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
14 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>
14 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>
14 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>
15 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>
15 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>
15 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>
15 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
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 years agoMerge commit 'refs/top-bases/fixes/tg--r-require-arg' into fixes/tg--r-require-arg
Uwe Kleine-König [Tue, 3 Mar 2009 10:23:22 +0000 (11:23 +0100)]
Merge commit 'refs/top-bases/fixes/tg--r-require-arg' into fixes/tg--r-require-arg

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

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

15 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

15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 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>
15 years agofix indentation
martin f. krafft [Thu, 20 Nov 2008 14:04:18 +0000 (15:04 +0100)]
fix indentation

Signed-off-by: martin f. krafft <madduck@debian.org>