[p4] Managing administrative tasks
Ildefonzo Arocha
ilde.web at gmail.com
Thu Nov 22 10:27:27 PST 2007
Hello,
I have some questions related on how to handle some administrative
tasks for which I need to create scripts. I hope some of you gurus
could give me some ideas.
The first sitaution is related to automatically updating and syncing
all developers workspace. This must be done it two ways:
automatically during the night and on demand (double click on a
shortcut in the desktop for each developer). All developers work in a
central server via Citrix/RDP, so all workspaces are available in
disk. I created a Perforce "batch" user who has "list" rights over
all the depot, the script I wrote does the sync (and some other stuff)
with this user. Since I am against to storing passwords in a script
file, the first problem I run into was that I needed to create a
non-expiring ticket for the user who starts the nightly process (as
administrator), and also for each developer (for the on demand sync)
... most ennoying! And still, any developer can retrieve the ticket
from the p4tickets file and user in any way they want. How can I get
around this ?
The second situation is similar to the one above. Imagine the
following scenario: "Department A" uses CVS and "Department B" uses
Perforce, the changes from "Department A" needs to be on a daily basis
loaded into Perforce, in other words, open and copy or copy and add,
then submit. Problem is that I can't use the 'batch' user for this as
it only has 'list' rights and not 'write' rights. I honestly consider
a waste of a Perforce license to create a user only for this task.
The other possible solution is to setup another computer and limit the
write access by IP address, which also seems absurd. Besides from
granting to the 'batch' user 'write' rights, is there any other way to
do this?
The third situation I have is that I need to list missing changes (not
yet integrated) from one branch to the other. I know that p4
integrate -n does the trick, but why on earth do I need to have a
workspace for this?? Suppose you have a really huge depot with
developers that have workspaces mapped to different areas of it, each
developer has its own development branch. You would like to send an
email every night to each developer indicating changes from him branch
not yet integrated in the main codeline, also this has to be a list of
files with missing revisions, and not changelists like interchanges
supplies.
So suppose you have a branch spec "john_branch" that maps:
//depot/accounting/ui/... //users/john
The following gives me the results I need.
p4 integrate -n -r -b john_branch
This works nice, but only if the user who is running the script has
//depot/accounting/ui mapped to his workspace, and since I want to
this for all users and with a script, I need to create a workspace
that maps everything ... or am I wrong? I was considering creating a
workspace called "batch" that maps "//depot/... //batch/..." and
simply never sync it to disk, however this does not prevent another
user from doing it and since every developer has user's "batch"
non-expiring ticket with 'list' rights over all the depot (first
situation), he is well able to do so!!
I tested with "p4 diff2 -b john_branch" but this also lists all
changes in the main codeline not yet integrated in "john_branch", and
I miss what is nice about p4 integrate which tells me which revisions
are not yet integrated. p4 diff2 just shows me the head revision of
both branches.
Any ideas / suggestions / thought?
Thanks,
Ildefonzo
More information about the perforce-user
mailing list