More Perforce lore.
Jarkko Hietaniemi [Thu, 28 Jun 2001 14:40:11 +0000 (14:40 +0000)]
p4raw-id: //depot/perl@11005

Porting/repository.pod

index 5f1338d..bbe537a 100644 (file)
@@ -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<p4desc> 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<Porting/p4d2p> 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