X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topgit.git;a=blobdiff_plain;f=README;h=15d20dfe9a1ea3a963229e1c0a2d137f9db3cd97;hp=fc74ff81160a826ddc4ab467d167114553c61df0;hb=49df1c8892aa8fc601bd34ef9c325043d655bc3a;hpb=563ddeffd5d5947fe05b6d5ae0ae9176208557b8 diff --git a/README b/README index fc74ff8..15d20df 100644 --- a/README +++ b/README @@ -308,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 @@ -320,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' @@ -344,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 @@ -465,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. @@ -490,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 @@ -589,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