X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=README;h=15d20dfe9a1ea3a963229e1c0a2d137f9db3cd97;hb=c4ee2825ed9676fdf33165f1e1bfc3aff80b2b86;hp=495c70b4aaa565741315bdb25f4778e56e778a4c;hpb=b725fc951a37854fc65945ac5bcab3bc61ccbd94;p=topgit.git diff --git a/README b/README index 495c70b..15d20df 100644 --- a/README +++ b/README @@ -244,6 +244,10 @@ tg delete only empty branch (base == head); use '-f' to remove non-empty branch. + The '-f' option is also useful to force removal of a branch's base, if + you 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. + Currently, this command will _NOT_ remove the branch from the dependency list in other branches. You need to take care of this _manually_. This is even more complicated @@ -304,6 +308,13 @@ tg mail The '-r' parameter with msgid can be used to generate in-reply-to and reference headers to an earlier mail. + Note: be careful when using this command. It easily sends out several + mails. You might want to run + + git config sendemail.confirm always + + to let `git send-email` ask for confirmation before sending any mail. + TODO: 'tg mail patchfile' to mail an already exported patch TODO: mailing patch series TODO: specifying additional options and addresses on command @@ -316,7 +327,7 @@ tg remote and 'git push' to operate on them. (Do NOT use 'git push --all' for your pushes - plain 'git push' will do the right thing.) - It takes a mandatory remote name argument, and optional + It takes a optional remote name argument, and optional '--populate' switch - use that for your origin-style remote, it will seed the local topic branch system based on the remote topic branches. '--populate' will also make 'tg remote' @@ -340,6 +351,17 @@ tg summary pass '--graphviz' to get a dot-suitable output to draw a dependency graph between the topic branches. + You can also use the --sort option to sort the branches using + a topological sort. This is especially useful if each + TopGit-tracked topic branch depends on a single parent branch, + since it will then print the branches in the dependency + order. In more complex scenarios, a text graph view would be + much more useful, but that is not yet implemented. + + The --deps option outputs dependency informations between + branches in a machine-readable format. Feed this to "tsort" + to get the output from --sort. + TODO: Speed up by an order of magnitude TODO: Text graph view @@ -461,13 +483,15 @@ tg import tg update ~~~~~~~~~ - Update the current topic branch wrt. changes in the branches - it depends on and remote branches. + Update the current or specified topic branch wrt. changes in the + branches it depends on and remote branches. This is performed in two phases - first, changes within the dependencies are merged to the base, then the base is merged into the topic branch. The output will guide you in case of conflicts. + After the update the current branch is the specified one. + In case your dependencies are not up-to-date, tg update will first recurse into them and update these. @@ -486,6 +510,21 @@ tg push repository. By default the remote gets all dependencies (both tgish and non-tgish) and bases pushed to. +tg base +~~~~~~~ + Prints the base commit of the current topic branch. Silently + exits with exit code 1 if you are not working on a TopGit + branch. The following command can be useful to get a summary + of the work you have made on a topic branch: + + git log --first-parent --no-merges `tg base`.. + + (Note: if you have shared the TopGit branch, the above command + only lists the commits that were made in the current + repository, so you will not see work done by your + collaborators.) + + TODO: tg rename @@ -585,3 +624,13 @@ All commands by default refer to the remote that 'tg remote --populate' was called on the last time ('topgit.remote' configuration variable). You can manually run any command with a different base remote by passing '-r REMOTE' _before_ the subcommand name. + + +POINTERS +-------- + +The following references are useful to understand the development of topgit and +its subcommands. + +tg depend: + http://lists-archives.org/git/688698-add-list-and-rm-sub-commands-to-tg-depend.html