From: Jarkko Hietaniemi Date: Thu, 28 Jun 2001 14:40:11 +0000 (+0000) Subject: More Perforce lore. X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f704d51e170ab06437d272f06bb17c639d561767;p=p5sagit%2Fp5-mst-13.2.git More Perforce lore. p4raw-id: //depot/perl@11005 --- diff --git a/Porting/repository.pod b/Porting/repository.pod index 5f1338d..bbe537a 100644 --- a/Porting/repository.pod +++ b/Porting/repository.pod @@ -254,11 +254,12 @@ owner's permission. Here is the current structure of the repository: /----+-----perl - Mainline development (bleadperl) - +-----cfgperl - Configure Pumpkin's Perl + +-----perlio - PerlIO Pumpkin's Perl +-----vmsperl - VMS Pumpkin's Perl +-----maint-5.004------perl - Maintainance branches +-----maint-5.005------perl +-----maint-5.6------perl + +-----maint-5.6------pureperl Perforce uses a branching model that simply tracks relationships between files. It does not care about directories at all, so @@ -275,8 +276,8 @@ files. The mainline (aka "trunk") code in the Perl repository is under "//depot/perl/...". Most branches typically map its entire contents under a directory that goes by the same name as the branch -name. Thus the contents of the cfgperl branch are to be found -in //depot/cfgperl. +name. Thus the contents of the perlio branch are to be found +in //depot/perlio. Run `p4 client` to specify how the repository contents should map to your local disk. Most users will typically have a client map that @@ -288,23 +289,75 @@ that shows files and branches. You can use this listing to determine if there are any changes in the mainline that you need to merge into your own branch. A typical merging session looks like this: - % cd ~/p4view/cfgperl - % p4 integrate -b cfgperl # to bring parent changes into cfgperl - % p4 resolve -a ./... # auto merge the changes + % cd ~/p4view/perlio + % p4 integrate -b perlio # to bring parent changes into perlio + % p4 resolve -am ./... # auto merge the changes % p4 resolve ./... # manual merge conflicting changes % p4 submit ./... # check in -If the owner of the mainline wants to bring the changes in cfgperl +If the owner of the mainline wants to bring the changes in perlio back into the mainline, they do: - % p4 integrate -r -b cfgperl + % p4 integrate -r -b perlio ... Generating a patch for change#42 is done as follows: % p4 describe -du 42 | p4desc | p4d2p > change-42.patch -p4desc and p4d2p are to be found in //depot/perl/Porting/. +F and F<>p4d2p> are to be found in //depot/perl/Porting/. + +The usual routine to apply a patch is + + % p4 edit file.c file.h + % patch < patch.txt + +(any necessary, re-Configure, make regen_headers, make clean, etc, here) + + % make all test + +(preferably make all test in several platforms and under several +different Configurations) + + % while unhappy + do + $EDITOR + make all test + done + % p4 submit + +Other useful Perforce commands + + % p4 describe -du 12345 # show change 12345 + +Note: the output of "p4 describe" is not in proper diff format, use +the F to convert. + + % p4 diff -se ./... # have I modified something but forgotten + # to "p4 edit", easy faux pas with autogenerated + # files like proto.h, or if one forgets to + # look carefully which files a patch modifies + % p4 sync file.h # if someone else has modified file.h + % p4 opened # which files are opened (p4 edit) by me + % p4 opened -a # which files are opened by anybody + % p4 diff -du file.c # what changes have I done + % p4 revert file.h # never mind my changes + % p4 sync -f argh.c # forcibly synchronize your file + # from the repository + % p4 diff -sr | p4 -x - revert + # throw away (opened but) unchanged files + # (in Perforce it's a little bit too easy + # to checkin unchanged files) + +Integrate patch 12345 from the mainline to the maint-5.6 branch: +(you have to in the directory that has both the mainline and +the maint-5.6/perl as subdirectories) + + % p4 integrate -d perl/...@12345,12345 maint-5.6/perl/... + +Integrate patches 12347-12350 from the perlio branch to the mainline: + + % p4 integrate -d perlio/...@12347,12350 perl/... =head1 Contact Information @@ -320,7 +373,9 @@ Malcolm Beattie, mbeattie@sable.ox.ac.uk, 24 June 1997. Gurusamy Sarathy, gsar@activestate.com, 8 May 1999. -Slightly updated by Simon Cozens, simon@brecon.co.uk, 3 July 2000 +Slightly updated by Simon Cozens, simon@brecon.co.uk, 3 July 2000. + +More updates by Jarkko Hietaniemi, jhi@iki.fi, 28 June 2001. =cut