Perforce and `p4 diff2' against the origin
John Baldwin
jhb at freebsd.org
Mon Apr 7 14:58:34 UTC 2008
On Saturday 05 April 2008 10:50:38 am Ed Schouten wrote:
> Hello everyone,
>
> Because my mpsafetty project in Perforce is going quite well, I'm
> considering running some kind of cron job to generate nightly diffs, so
> other people (interested friends, colleagues and others) to test my
> work.
>
> I've read `p4 help diff2' and it seems you can run the following
> command:
>
> p4 diff2 -b mpsafetty
>
> Unfortunately this command just does a braindead diff against the latest
> FreeBSD vendor source, which is not useful in my case. I just want it to
> generate a diff against the version I integrated.
>
> Is it possible to do this with Perforce?
One option is to create a label and sync it each time you do an integ. I do
this for projects/smpng. Then I can do:
p4 diff2 -u -b smpng @smpng_base #head
Another option is to use a convention when you do integ's. What I tend to do
is when I do a 'p4 integ' I first do a 'p4 changes -m 10' in another window
and include the last 'importer' submit in my submit message by having a
message of:
'IFC @XXXXXX'
e.g.
'IFC @12345'
Then you can use p4 changes on your branch and find the last IFC and use that
diff like so:
p4 diff2 -u -b mybranch @12345 #head
I have a script to look in p4 changes of the branch to find the last IFC
commit and figure out the '12345' part automatically like so:
#!/bin/sh
b=$1
change=$(p4 changes -m 20 //depot/user/jhb/${b}/... | awk '/IFC @[1-9][0-9]*/
{ match($0, /@[1-9][0-9]*/); printf "%s\n", substr($0, RSTART, RLENGTH); exit
0 }')
echo "Updating ~/work/patches/$b.patch"
p4 diff2 -u -b jhb_$b $change \#head > ~/work/patches/$b.patch
--
John Baldwin
More information about the freebsd-hackers
mailing list