I’m trying to find the optimal solution for doing my after-hours work at home, so that I don’t forget what my wife looks like.
My first solution was to make a tar file of the vob to a thumb drive at work, take it home, untar it, and work on the code. Then, when I was done for the day, I’d remember what files I’d touched and make a “toWork.tar” file on that same thumb drive. I’d bring that into work, and I’d untar the “toWork.tar” to an appropriate place, and then do a series of checkout
s, diff
s, and cp
s to get everything up to date. And that worked ok when I was using gvim
and make
, except that now and then I’d forget something that I’d worked on, so I’d have to ftp
something from home. But since I’ve started doing all the work on my laptop I can’t guarantee that I can ftp it since I often close up my laptop when I go to work.
Then I added Eclipse to the mix, and it suddenly seemed harder to remember to find all the stuff that I’d worked on during the evening. So I looked for a better idea. And I thought I had one. I bought a new thumb drive (2Gb for $20!) and formatted it with ext3 instead of FAT32 so that it supported symlinks. Then I put a ClearCase “snapshot” view on it at work, using the same development project/stream that I’m using in a dynamic view. When I’m done for the night at work, I do a “ct setact -none
” on the dynamic view, a "ct setact tomblin_new_schema
” on the snapshot view, do a clearviewupdate
, and I’m ready to take everything home. I plug it into my Linux box at home and rsync it over to the laptop and start work. When I’m done, I rsync it back. Then when I get to work, I mount it back, and do another clearviewupdate
, and when I’ve finished resolving the “hijacked” files, I’m good to go on the dynamic view.
Why don’t I just stick with the snapshot view, I hear you ask? Mostly because the snapshot view can’t be linked to /vob/ on the Linux box because of an existing /vob that appears to belong to the clearcase system somehow, and dozens of the Makefiles have hard coded /vob paths in them instead of relative paths. So I couldn’t figure out how to use the normal build process in the snapshot view.
But there are a couple of problems:
- My work Linux machine doesn’t have USB 2.0, so clearviewupdate is freaking slow.
- Once I’ve got everything synced up and start working with Eclipse on my work machine, it can take upwards of 40 minutes while it rebuilds everything and resyncs with ClearCase.
- My uid number on my work machine is 4368, on my home Linux box is 1001, and on my laptop is yet another number. This causes permissions problems.
The 40 minute delay in the morning is the biggie, of course. So now I’m trying to figure out “Plan C”. I figure if I stick to only editing on the laptop, I won’t have the long start up process, but I still need to get it synced over to ClearCase on the work Linux box. So I’m thinking of two options here:
- NFS export a directory on my laptop, and when I bring it into work mount it and use it as a snapshot view.
- Bring in the laptop to work on, and rely on rsyncs forward and back to synchronize it with the snapshot view.
Either way, I’m not sure what to do about the permissions problem. Also, I still haven’t got a solution to doing a build in the snapshot view
Tomorrow I’ll bring in my laptop and see how easy it is to hook up to the work network and connect to my work monitor and keyboard and mouse.
It’s not clearcase, but http://www.dehora.net/journal/2008/01/05/using-mercurial-with-perforce/ discusses using a DVCS on top of a centralised VCS.