[p4] Syncing only to labeled files using p4 command line

Jeff Grills jgrills at junctionpoint.com
Wed May 3 12:55:52 PDT 2006


Yeah, there definitely are times where it doesn't work as expected -
apparently this is another one of them.  "Revert unchanged files" in p4win,
for instance, used to diff all the files and then revert the ones without
changes specifically, whereas it could have used "p4 revert -a" instead and
been significantly more efficient.

I think in this case, this is the command line you want (and I tested it
locally this time):

	p4 sync //... at label,label

Still, watching the p4 command usually shows you the answer.

j

-----Original Message-----
From: Ken.Williams at thomson.com [mailto:Ken.Williams at thomson.com] 
Sent: Wednesday, May 03, 2006 2:13 PM
To: jgrills at junctionpoint.com; perforce-user at perforce.com
Subject: RE: [p4] Syncing only to labeled files using p4 command line

Sure, it's relatively easy to "figure out" how to do it, but not to
actually *do* it. =)  P4Win seems to just do "p4 fstat
//... at LastWorkingRevision", then for each selected file sync to the
appropriate revision individually.  It also seems to use the revision
number, not the label name, when syncing, though I might be wrong on
that.

In order to translate that to the command-line environment I'd have to
do some scripting, which is fine (something like "p4 files
... at LastWorkingRevision | perl -pe 's/(#\d+).*/$1/' | p4 -x- sync -n"
would probably be workable), but I thought I should be able to do it
directly with a revision spec for "p4 sync" directly.

 -Ken

> -----Original Message-----
> From: Jeff Grills [mailto:jgrills at junctionpoint.com] 
> Sent: Wednesday, May 03, 2006 1:20 PM
> To: Williams, Ken (TLR Corp); perforce-user at perforce.com
> Subject: RE: [p4] Syncing only to labeled files using p4 command line
> 
> 
> Following the "Teach a person to fish" philosophy...
> 
> If you know how to do something in p4win, it's relatively 
> easy to figure out
> how to do the same thing from the command line.  Right-click 
> the output box
> at the bottom of p4win and check the "Show P4 Commands" entry 
> (I also check
> the Timestamps and Status Messages entries as well, but 
> that's not necessary
> for this).  Now, any time you perform an operation in p4win, the
> corresponding command line command is also displayed.
> 
> j
> 
> -----Original Message-----
> From: perforce-user-bounces at perforce.com
> [mailto:perforce-user-bounces at perforce.com] On Behalf Of
> Ken.Williams at thomson.com
> Sent: Wednesday, May 03, 2006 11:57 AM
> To: perforce-user at perforce.com
> Subject: [p4] Syncing only to labeled files using p4 command line
> 
> Hi,
> 
> This strikes me as a question I should probably already know 
> the answer
> to, but I couldn't seem to find it from perusing the Tech Notes on
> labels, or the section of Chapter 6 in the docs on labels.
> 
> I've got a label called "LastWorkingRevision", which is a light-weight
> way for our developers to indicate the last working revision 
> of a set of
> files they're working on when they know the head revision is broken.
> The idea is that if syncing to head & building & testing fails, team
> members should be able to sync to head then sync to this label and
> probably get a working build.
> 
> Using p4win, we can sync to head, then right-click on the label and
> select "sync specific files to label" to achieve this effect. 
>  Using the
> p4 command-line client (on Linux) though, I'm not sure what 
> the easiest
> way is.  If we do "p4 sync ... at LastWorkingRevision", all files not
> mentioned in the label are deleted.
> 
> Any tips?
> 
>  -Ken
> 
> 



More information about the perforce-user mailing list