Jump to content


P4Reg

Member Since 01 Feb 2017
Offline Last Active Oct 02 2020 11:02 AM
-----

Posts I've Made

In Topic: Counting changes between two dates

17 March 2020 - 11:00 AM

Try putting quotes around the "date time" part:

p4 changes //depot/...@"2017/01/01 10:00:00",@now

p4 changes @"2017/01/01 10:00:00",@now


Without that the shell splits on the space.

In Topic: swarm-trigger.pl -t shelvedel on windows creates new child process every second

28 February 2020 - 10:36 AM

Do you have any spaces in the trigger path

In Topic: swarm-trigger.pl -t shelvedel on windows creates new child process every second

27 February 2020 - 12:04 PM

I discovered there has been a bug logged recently, it turns out the shelvedel trigger can fail with the server version error  when CWD=C:\ (or another drive root) and attempting to delete a shelved file. So it's very specific to Windows servers and being in a drive root when running the shelve delete.

In Topic: swarm-trigger.pl -t shelvedel on windows creates new child process every second

26 February 2020 - 09:59 AM

As already mentioned above, what seems to happen in rare cases (so far we've only seen it with Strawberry Perl) is that the -d arg that should contain just the clientcwd was slurping up all the rest of the args and leaving the -s (server version) empty (as well as -a argsQuoted). Hence the suggestion to put -d at the end so it couldn't get greedy with other args.

I noticed in one case the "p4 shelve -d" command  the -d clientcwd argument was reported as being done from the A: drive and that was appearing with a "stray" unmatched double quote in the -d output right after the ":" char;

d = "a:" -a -df,-c,1191577 -s 2018.1"

I don't have a sensible explanation why it's being returned like that (some strangeness in the args pattern matching with a ":" at the end of the path?),  I'm guessing that could be causing some odd parsing behaviour in the args array

In Topic: swarm-trigger.pl -t shelvedel on windows creates new child process every second

24 February 2020 - 05:25 PM

In the swarm.shelvedel trigger definition, can you try hard coding the server version in the -s argument (whatever "p4 info" reports for server version, without a patch so for example like "2018.1"), and also putting the -d argument at the end

For example (modifying for your own trigger script and perl.exe locations):

swarm.shelvedel shelve-delete //... "%quote%C:\Strawberry\perl\bin\perl.exe%quote% %quote%C:\P4Triggers\Swarm\triggers\swarm-trigger.pl%quote% -t shelvedel -v %change% -w %client% -u %user% -s 2018.1 -a %quote%%argsQuoted%%quote% -d %quote%%clientcwd%%quote%"


In certain cases it looks like the -d arg that should contain just the clientcwd can slurp up all the rest of the args and leave the -s (server version) empty (as well as -a argsQuoted).