• Leigh Stoller's avatar
    Checkpoint my cvs interface to the workbench. This first cut uses the · 8371fc79
    Leigh Stoller authored
    "rtag" directive to initiate template modify operations. So, to get started
    you do a checkout:
    
      cvs -d ops.emulab.net:/proj/$pid/templates/XXXXX/cvsrepo checkout XXXXX
    
    where XXXXX is the part of the guid (10000/1) before the slash. Might try
    and roll all templates into a single project wide repo at some point, to
    avoid the extraneous path stuff, but didn't want to worry that just yet.
    
    Okay, so have a checkout. You can work along the trunk, doing commits. To
    create a new template (a modify of the existing template), you tag the tree
    using rtag:
    
      cvs -d ops.emulab.net:/proj/$pid/templates/XXXXX/cvsrepo rtag mytag XXXXX
    
    A template modify is started at the end, and you should probably wait for
    email before continuing. Eventually I will need to add locking of some
    kind, but I have to do the modify in the background, or else I get deadlock
    cause cvs keeps the repo locked, and the modify also needs to access it.
    
    Each time you tag along the trunk, you get a modified template, which in
    the history diagram looks like:
    
      10000/1 --> 10000/2 --> 10000/3 ...
    
    If you want to branch, say at 10000/2 you can create a branch tag using rtag:
    
      cvs -d [cut] rtag -r T10000/2 -b mytag2 XXXXX
    
    You can also use your own tags for -r option, but I also create a TXXXXX/YY
    tag at each template modify, which is easy to remember.
    
    Then update your sandbox to the new branch, commit changes along that
    branch, and then later use rtag again to initiate a template modify
    operation:
    
      cvs update -r mytag2
      cvs commit ...
      cvs -d [cut] rtag -r mytag2 mytag3 XXXXX
    
    And now the history diagram looks like:
    
      10000/1 --> 10000/2 --> 10000/3 ...
                    |
                    |
                    -> 10000/4 ...
    
    You should be able to mix interaction via the web with interaction via the
    cvs interface. I've tested it, although not extensively.
    8371fc79
Name
Last commit
Last update
account Loading commit data...
apache Loading commit data...
assign Loading commit data...
autoconf Loading commit data...
bugdb Loading commit data...
capture Loading commit data...
cdrom Loading commit data...
collab Loading commit data...
daikon Loading commit data...
db Loading commit data...
delay/linux Loading commit data...
dhcpd Loading commit data...
discvr Loading commit data...
doc Loading commit data...
event Loading commit data...
firewall Loading commit data...
hw_config Loading commit data...
hyperviewer Loading commit data...
image-test Loading commit data...
install Loading commit data...
ipod Loading commit data...
lib Loading commit data...
mote Loading commit data...
named Loading commit data...
os Loading commit data...
patches Loading commit data...
pelab Loading commit data...
pxe Loading commit data...
rc.d Loading commit data...
robots Loading commit data...
rpms Loading commit data...
security Loading commit data...
sensors Loading commit data...
sql Loading commit data...
ssl Loading commit data...
sysadmin Loading commit data...
tbsetup Loading commit data...
testsuite Loading commit data...
tip Loading commit data...
tmcd Loading commit data...
tools Loading commit data...
utils Loading commit data...
vis Loading commit data...
wiki Loading commit data...
www Loading commit data...
xmlrpc Loading commit data...
.loc-ignore Loading commit data...
BUGS Loading commit data...
GNUmakefile.in Loading commit data...
GNUmakerules Loading commit data...
GPL-COPYING Loading commit data...
LGPL-COPYING Loading commit data...
LICENSE Loading commit data...
Makeconf.in Loading commit data...
README Loading commit data...
TODO Loading commit data...
TODO.plab Loading commit data...
WEBtemplate.in Loading commit data...
config.h.in Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
defs-aerolab Loading commit data...
defs-calfeld-emulab Loading commit data...
defs-davidand-emulab Loading commit data...
defs-default Loading commit data...
defs-duerig-emulab Loading commit data...
defs-elabinelab Loading commit data...
defs-example Loading commit data...
defs-example-privatecnet Loading commit data...
defs-fish-emulab Loading commit data...
defs-gatech Loading commit data...
defs-johnsond-emulab Loading commit data...
defs-kevina-emulab Loading commit data...
defs-kwebb-emulab Loading commit data...
defs-newbold-emulab Loading commit data...
defs-newbold-macdb Loading commit data...
defs-ricci-emulab Loading commit data...
defs-shash-emulab Loading commit data...
defs-stoller-emulab Loading commit data...
defs-stoller-home Loading commit data...
defs-stoller-lbsdb Loading commit data...
defs-uky Loading commit data...
defs-wide Loading commit data...