X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=Documentation%2Fhowto%2Fusing-topic-branches.txt;h=2c98194cb84d34bbcb5f3c0bc989728e46f7f9d3;hb=abb9ae95f4e65911561b40ab9f38a27e5677ca7d;hp=4698abe46bff0b878dcfcd05771f5760483b4278;hpb=5e80092f7e6db09a40a62e837ca3f74f0bc5ad73;p=git.git diff --git a/Documentation/howto/using-topic-branches.txt b/Documentation/howto/using-topic-branches.txt index 4698abe4..2c98194c 100644 --- a/Documentation/howto/using-topic-branches.txt +++ b/Documentation/howto/using-topic-branches.txt @@ -9,7 +9,7 @@ GIT as a Linux subsystem maintainer. -Tony -Last updated w.r.t. GIT 0.99.9f +Last updated w.r.t. GIT 1.1 Linux subsystem maintenance using GIT ------------------------------------- @@ -31,7 +31,7 @@ test tree and then pull to the release tree as that would leave trivial patches blocked in the test tree waiting for complex changes to accumulate enough test time to graduate. -Back in the BitKeeper days I achieved this my creating small forests of +Back in the BitKeeper days I achieved this by creating small forests of temporary trees, one tree for each logical grouping of patches, and then pulling changes from these trees first to the test tree, and then to the release tree. At first I replicated this in GIT, but then I realised @@ -42,7 +42,7 @@ So here is the step-by-step guide how this all works for me. First create your work tree by cloning Linus's public tree: - $ git clone rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git work + $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git work Change directory into the cloned tree you just created @@ -52,7 +52,7 @@ Set up a remotes file so that you can fetch the latest from Linus' master branch into a local branch named "linus": $ cat > .git/remotes/linus - URL: rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + URL: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git Pull: master:linus ^D @@ -92,6 +92,14 @@ These can be easily kept up to date by merging from the "linus" branch: $ git checkout test && git merge "Auto-update from upstream" test linus $ git checkout release && git merge "Auto-update from upstream" release linus +Important note! If you have any local changes in these branches, then +this merge will create a commit object in the history (with no local +changes git will simply do a "Fast forward" merge). Many people dislike +the "noise" that this creates in the Linux history, so you should avoid +doing this capriciously in the "release" branch, as these noisy commits +will become part of the permanent history when you ask Linus to pull +from the release branch. + Set up so that you can push upstream to your public tree (you need to log-in to the remote system and create an empty tree there before the first push).