diff options
author | Yves Orton <demerphq@gmail.com> | 2009-10-26 22:50:24 +0100 |
---|---|---|
committer | Yves Orton <demerphq@gmail.com> | 2009-10-26 22:50:24 +0100 |
commit | 2699d6345b651c48a820507d6287ddca1f5b2ee4 (patch) | |
tree | 9be17018597a4d95940a79d26186e7204b759563 /pod/perlrepository.pod | |
parent | ce2a8773749b6722584a63f84a44b43287329677 (diff) | |
download | perl-2699d6345b651c48a820507d6287ddca1f5b2ee4.tar.gz |
refine the documentation for deleting branches and altering history
Diffstat (limited to 'pod/perlrepository.pod')
-rw-r--r-- | pod/perlrepository.pod | 62 |
1 files changed, 43 insertions, 19 deletions
diff --git a/pod/perlrepository.pod b/pod/perlrepository.pod index db7c54305f..ee3b856f76 100644 --- a/pod/perlrepository.pod +++ b/pod/perlrepository.pod @@ -285,7 +285,7 @@ You can see what files are changed: # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # - # modified: AUTHORS + # modified: AUTHORS # And you can see the changes: @@ -429,7 +429,7 @@ sources: =item Testsuite When submitting a patch you should make every effort to also include an -addition to perl's regression tests to properly exercise your patch. +addition to perl's regression tests to properly exercise your patch. Your testsuite additions should generally follow these guidelines (courtesy of Gurusamy Sarathy <gsar@activestate.com>): @@ -693,25 +693,49 @@ 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 this, you may want to sequentially -name your branches so that it is easier for others working with you to -cherry-pick their local changes. +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. - -B<DO NOT, UNDER ANY CIRCUMSTANCES, SO MUCH AS THINK ABOUT TRYING THIS -ON BLEAD OR MAINT> - -We don't 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. - -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. +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<refspec>'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<NOTE:> it is forbidden at the repository level to delete any of the +"primary" branches. That is any branch matching C<m!^(blead|maint|perl)!>. +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://camel.booking.com/perl + ! [remote rejected] blead (hook declined) + error: failed to push some refs to 'ssh://camel.booking.com/perl' + +As a matter of policy we do B<not> 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 COMMITTING TO MAINTENANCE VERSIONS |