From feb5e9720de76a360e2647dc625c9166b5e82f21 Mon Sep 17 00:00:00 2001 From: Ricardo Signes Date: Sun, 3 Jul 2011 08:49:40 -0400 Subject: [PATCH] remove duplicated "topic branches" section --- pod/perlgit.pod | 80 ++------------------------------------------------------- 1 file changed, 2 insertions(+), 78 deletions(-) diff --git a/pod/perlgit.pod b/pod/perlgit.pod index eac7bb8..0c889b7 100644 --- a/pod/perlgit.pod +++ b/pod/perlgit.pod @@ -466,6 +466,7 @@ the "first commit where the bug is solved". C has much more information on how you can tweak your binary searches. + =head1 Topic branches and rewriting history Individual committers should create topic branches under @@ -543,7 +544,7 @@ deleted or modified. Think long and hard about whether you want to push a local tag to perl.git before doing so. (Pushing unannotated tags is not allowed.) -=head3 Grafts +=head2 Grafts The perl history contains one mistake which was not caught in the conversion: a merge was recorded in the history between blead and @@ -557,83 +558,6 @@ C<.git/info/grafts> file: It is particularly important to have this graft line if any bisecting is done in the area of the "merge" in question. -=head2 Topic branches and rewriting history - -Individual committers should create topic branches under -B/B. Other committers should check -with a topic branch's creator before making any change to it. - -The simplest way to create a remote topic branch that works on all -versions of git is to push the current head as a new branch on the -remote, then check it out locally: - - $ branch="$yourname/$some_descriptive_name" - $ git push origin HEAD:$branch - $ git checkout -b $branch origin/$branch - -Users of git 1.7 or newer can do it in a more obvious manner: - - $ branch="$yourname/$some_descriptive_name" - $ git checkout -b $branch - $ git push origin -u $branch - -If you are not the creator of B/B, you -might sometimes find that the original author has edited the branch's -history. There are lots of good reasons for this. Sometimes, an author -might simply be rebasing the branch onto a newer source point. -Sometimes, an author might have found an error in an early commit which -they wanted to fix before merging the branch to blead. - -Currently the master repository is configured to forbid -non-fast-forward merges. This means that the branches within can not be -rebased and pushed as a single step. - -The only way you will ever be allowed to rebase or modify the history -of a pushed branch is to delete it and push it as a new branch under -the same name. Please think carefully about doing this. It may be -better to sequentially rename your branches so that it is easier for -others working with you to cherry-pick their local changes onto the new -version. (XXX: needs explanation). - -If you want to rebase a personal topic branch, you will have to delete -your existing topic branch and push as a new version of it. You can do -this via the following formula (see the explanation about C's -in the git push documentation for details) after you have rebased your -branch: - - # first rebase - $ git checkout $user/$topic - $ git fetch - $ git rebase origin/blead - - # then "delete-and-push" - $ git push origin :$user/$topic - $ git push origin $user/$topic - -B it is forbidden at the repository level to delete any of the -"primary" branches. That is any branch matching -C. Any attempt to do so will result in git -producing an error like this: - - $ git push origin :blead - *** It is forbidden to delete blead/maint branches in this repository - error: hooks/update exited with error code 1 - error: hook declined to update refs/heads/blead - To ssh://perl5.git.perl.org/perl - ! [remote rejected] blead (hook declined) - error: failed to push some refs to 'ssh://perl5.git.perl.org/perl' - -As a matter of policy we do B edit the history of the blead and -maint-* branches. If a typo (or worse) sneaks into a commit to blead or -maint-*, we'll fix it in another commit. The only types of updates -allowed on these branches are "fast-forward's", where all history is -preserved. - -Annotated tags in the canonical perl.git repository will never be -deleted or modified. Think long and hard about whether you want to push -a local tag to perl.git before doing so. (Pushing unannotated tags is -not allowed.) - =head1 WRITE ACCESS TO THE GIT REPOSITORY Once you have write access, you will need to modify the URL for the -- 2.7.4