diff options
author | Steve Hay <steve.m.hay@googlemail.com> | 2012-09-13 23:09:19 +0100 |
---|---|---|
committer | Steve Hay <steve.m.hay@googlemail.com> | 2012-09-13 23:09:19 +0100 |
commit | 3afc3118d840d5ec214f77890ef7e95cdce73636 (patch) | |
tree | e6e82711bb9ad4ab0c954d6d8a09de7f2a5151f8 | |
parent | 99cd8e461ab8bc340aed8e4c109bb32457f85bd0 (diff) | |
download | perl-3afc3118d840d5ec214f77890ef7e95cdce73636.tar.gz |
Document how to create and use smoke-me branches
The instructions are based on the following helpful email from Tony Cook:
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2012-09/msg00747.html
after I tested them myself in course of commit 8700fd3876.
-rw-r--r-- | pod/perlgit.pod | 70 | ||||
-rw-r--r-- | t/porting/known_pod_issues.dat | 4 |
2 files changed, 72 insertions, 2 deletions
diff --git a/pod/perlgit.pod b/pod/perlgit.pod index 6046d46351..9b5fe3f716 100644 --- a/pod/perlgit.pod +++ b/pod/perlgit.pod @@ -826,6 +826,76 @@ And then push back to the repository: % git push +=head2 Using a smoke-me branch to test changes + +Sometimes a change affects code paths which you cannot test on the OSes +which are directly available to you and it would be wise to have users +on other OSes test the change before you commit it to blead. + +Fortunately, there is a way to get your change smoke-tested on various +OSes: push it to a "smoke-me" branch and wait for certain automated +smoke-testers to report the results from their OSes. + +The procedure for doing this is roughly as follows (using the example of +of tonyc's smoke-me branch called win32stat): + +First, make a local branch and switch to it: + + % git checkout -b win32stat + +Make some changes, build perl and test your changes, then commit them to +your local branch. Then push your local branch to a remote smoke-me +branch: + + % git push origin win32stat:smoke-me/tonyc/win32stat + +Now you can switch back to blead locally: + + % git checkout blead + +and continue working on other things while you wait a day or two, +keeping an eye on the results reported for your smoke-me branch at +L<http://perl.develop-help.com/?b=smoke-me/tonyc/win32state>. + +If all is well then update your blead branch: + + % git pull + +then checkout your smoke-me branch once more and rebase it on blead: + + % git rebase blead win32stat + +Now switch back to blead and merge your smoke-me branch into it: + + % git checkout blead + % git merge win32stat + +As described earlier, if there are many changes on your smoke-me branch +then you should prepare a merge commit in which to give an overview of +those changes by using the following command instead of the last +command above: + + % git merge win32stat --no-ff --no-commit + +You should now build perl and test your (merged) changes one last time +(ideally run the whole test suite, but failing that at least run the +F<t/porting/*.t> tests) before pushing your changes as usual: + + % git push origin blead + +Finally, you should then delete the remote smoke-me branch: + + % git push origin :smoke-me/tonyc/win32stat + +(which is likely to produce a warning like this, which can be ignored: + + remote: fatal: ambiguous argument 'refs/heads/smoke-me/tonyc/win32stat': unknown revision or path not in the working tree. + remote: Use '--' to separate paths from revisions + +) and then delete your local branch: + + % git branch -d win32stat + =head2 A note on camel and dromedary The committers have SSH access to the two servers that serve diff --git a/t/porting/known_pod_issues.dat b/t/porting/known_pod_issues.dat index ba4ccf6c8a..b6073c3f97 100644 --- a/t/porting/known_pod_issues.dat +++ b/t/porting/known_pod_issues.dat @@ -1,4 +1,4 @@ -# This file is the data file for t/porting/podcheck.t. +# This file is the data file for porting/podcheck.t. # There are three types of lines. # Comment lines are white-space only or begin with a '#', like this one. Any # changes you make to the comment lines will be lost when the file is @@ -230,7 +230,7 @@ pod/perldtrace.pod Verbatim line length including indents exceeds 79 by 26 pod/perlebcdic.pod Verbatim line length including indents exceeds 79 by 13 pod/perlembed.pod Verbatim line length including indents exceeds 79 by 27 pod/perlfunc.pod There is more than one target 1 -pod/perlgit.pod Verbatim line length including indents exceeds 79 by 11 +pod/perlgit.pod Verbatim line length including indents exceeds 79 by 12 pod/perlgpl.pod Verbatim line length including indents exceeds 79 by 50 pod/perlguts.pod ? Should you be using F<...> or maybe L<...> instead of 2 pod/perlguts.pod ? Should you be using L<...> instead of 1 |