[p4] Changelist number in versions
Stephen Vance
steve at vance.com
Tue Dec 18 14:49:37 PST 2007
You could 'p4 lock' the branch to prevent anyone (else) from checking
in, edit your version.h in a numbered pending changelist, validate the
build, check in version.h, then unlock the branch. You could even create
the changelist up front for your integration, make the version.h change
a dirty edit, and check it all in at once.
It's not really the Perforce way, but if I read your intent correctly,
it should fit the bill exactly.
Steve
todd.benham at kodak.com wrote:
> Thank you for some 20+ responses. What a helpful group!
>
> My conclusion is that what I *really* want to do is impossible unless we
> were willing prevent check-in's on the server during the "critical"
> section of the process. Apparently, I confused some of you -- in step 1),
> I meant "p4 integrate" into a new directory ... so there won't be a change
> list number using "p4 changes" until step 5).
>
> So my revised plan is to use $Change$ keyword expansion (and/or the
> P4Python) for getting the number into the version.h file. Then p4 add it
> in the same changelist as the branch and submit. Then build from change
> list number (in case it changed), then submit a separate changelist with
> "built" items. I have some details to iron out but the idea is in place.
>
> Several of you suggested that I need not bother adding version.h to the
> release since it is generated and I understand that idea. But we have
> certain habits that make checking in the file kind of useful.
>
> Todd
>
>
> -----Original Message-----
> From: perforce-user-bounces at perforce.com
> [mailto:perforce-user-bounces at perforce.com] On Behalf Of Todd D. Benham
> Sent: Monday, December 17, 2007 4:22 PM
> To: perforce-user at perforce.com
> Subject: [p4] Changelist number in versions
>
>
> I have poked through various help and online notes such as
> (http://maillist.perforce.com/pipermail/perforce-user/2005-March/014822.ht
> ml) but can't fully find the answer to this "catch-22" situation.
>
> I see that Perforce displays the changelist number in the version of their
> products such as Perforce Visual Client/NTX86/2007.2/128166.
>
> Great idea but I cannot really see how this can be done, correctly, in
> Perforce. It seems there is a always a risk of getting the wrong
> changelist number in the build. Here is my dilemma by example:
> 1) Branch from main\proj1 to release\v1.01\proj1
> 2) Grep the changelist number out of p4 changes or whatever (et. al.,
> a whole different discussion)
> 3) Generate version.h with the change num and version. P4 add to
> release\v1.01\proj1\inc\version.h.
> 4) Perhaps, build, test, add built binaries, rel notes, whatever.
> 5) Submit changelist
>
> It is nice to have only one changelist for a release but now in #5, the
> changelist number might change because elsewhere on the server someone
> else submitted something. Yet, it is already embedded in the build.
>
> What do people really do? Some choices:
> a) Don't bother trying to track the changelist in version.h. Just use
> release notes or something.
> b) Don't allow other submits while building a release (not realistic
> on a popular server).
> c) Use multiple changelists in a single release.
> d) Use Labels instead of changelist number.
> e) Submit everything in a really short time and THEN build. Keep the
> "race" to a short time frame where it is unlikely that anyone submits in
> between. But then we need a second changelist in the release branch for
> "built" item which are not available until the build happens. Then, this
> is confusing of which changelist is THE change list to re-build from if
> necessary.
> f) Other
>
> I assume many of you understand and have dealt with this race condition.
> Am I missing something?
>
>
> In case it is relevant, we use: Windows, Python, P4Python, p4v, p4, batch
> files
>
>
>
>
> Thank for any help,
>
> Todd Benham
>
> _______________________________________________
> perforce-user mailing list - perforce-user at perforce.com
> http://maillist.perforce.com/mailman/listinfo/perforce-user
>
> _______________________________________________
> perforce-user mailing list - perforce-user at perforce.com
> http://maillist.perforce.com/mailman/listinfo/perforce-user
>
>
--
Stephen Vance
www.vance.com
More information about the perforce-user
mailing list