Ever since my internship at National Instruments, I’ve been using Perforce as version control system. Thanks to their evaluation license, which is limited to two users, this has been completely free for me. I’m glad that I stuck with Perforce, because I am using it at work now too.
While at Rice, I had the Perforce server running on my office machine, a RHEL4 server. I don’t have a Linux box at home, just two Windows machines. To migrate the Perforce server from Linux to Windows, I had to run the p4migrate script to find name collisions, since Linux is case-sensitive and Windows is case-insensitive. There were a handful of different files that would have mapped to the same file on Windows. Perforce customer service has been great, even for a user of the free version like me. Thanks again!
Running the Perforce server on a Linux machine made it really easy to run scripts as part of Perforce triggers. I just ssh into the same machine and run a script:
[cc]
# See ‘p4 help triggers’ for more information about triggers.
Triggers:
run-RiceMBS.to.web change-commit //depot/DP4MBS/RiceMBS.student/*.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-and-update-RiceMBS.sh %changelist% RiceMBS.to.web”
run-RiceMBS.to.202web change-commit //depot/DP4MBS/RiceMBS.student/*.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-and-update-RiceMBS-20.sh %changelist% RiceMBS.to.202web”
run-MSThesis.to.web1 change-commit //depot/Concutest/MSThesis/pdf/thesis.pdf “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% MSThesis.to.web”
run-MSThesis.to.web2 change-commit //depot/Concutest/MSThesis.defense/MSThesis-Ricken.ppt “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% MSThesis.to.web”
run-COMP600MS.to.web change-commit //depot/Concutest/MSThesis.defense/COMP600/COMP600-Ricken.ppt “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% comp600.to.web”
run-COMP600PPPJ2009.to.web change-commit //depot/Concutest/PPPJ2009/presentation/COMP600/COMP600-Ricken-2009-08-24.ppt “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% comp600.to.web”
run-COMP600Mint.to.web change-commit //depot/Mint/COMP600/presentation/COMP600-Ricken-Mint-2010-02-08.* “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% comp600.to.web”
run-RCSC20071004.to.web change-commit //depot/Concutest/MSThesis.defense/RCSC-20071004/… “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% rcsc-20071004.to.web”
run-Concutest-JUnit.to.web2 change-commit //depot/Concutest/concJUnit/jars/*.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% Concutest-JUnit.to.web2”
run-Kooprey.to.web change-commit //depot/DP4RDP/Kooprey.zip “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% Kooprey.to.web”
run-TempCalc.to.TempAssign change-commit //depot/OOPBook/TempCalculator/… “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TempCalc.to.TempAssign”
run-TempCalc.to.SIGCSE06 change-commit //depot/OOPBook/TempCalculator/… “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TempCalc.to.SIGCSE06”
run-SIGCSE06.to.web change-commit //depot/SIGCSE06/TempCalculator/webpage/… “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% SIGCSE06.to.web”
run-TeachJava2004.to.web1 change-commit “//depot/DP4MBS/TeachJava Presentation/*.zip” “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TeachJava2004.to.web”
run-TeachJava2004.to.web2 change-commit “//depot/DP4MBS/TeachJava Presentation/*public.ppt” “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TeachJava2004.to.web”
run-TeachJava2005.to.web1 change-commit “//depot/DP4MBS/TeachJava 2005 Presentation/*” “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TeachJava2005.to.web”
run-TeachJava2005.to.web2 change-commit “//depot/DP4MBS/TeachJava 2005 Presentation/demos/*” “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TeachJava2005.to.web”
run-TempAssign.to.web1 change-commit //depot/OOPBook/TemperatureAssignment/*.html “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TempAssign.to.web”
run-TempAssign.to.web2 change-commit //depot/OOPBook/TemperatureAssignment/handout/… “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TempAssign.to.web”
run-TempAssign.to.web3 change-commit //depot/OOPBook/TemperatureAssignment/solutions/… “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TempAssign.to.web”
run-TempAssign.to.web4 change-commit //depot/OOPBook/TemperatureAssignment/noApplets/TempCalc.pdf “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TempAssign.to.web”
run-VMInitPaper.to.web1 change-commit “//depot/Concutest/vmSyncPoints/Synchronization During Java VM Initialization and Termination.pdf” “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% VMInitPaper.to.web”
run-VMInitPaper.to.web2 change-commit //depot/Concutest/vmSyncPoints/*.log “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% VMInitPaper.to.web”
run-laptjavac.to.web change-commit //depot/Concutest/laptjavac/jars/*.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% laptjavac.to.web”
run-tcSubtypingPaper.to.web change-commit //depot/Concutest/tcSubtyping/tcSubtyping.pdf “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% tcSubtypingPaper.to.web”
run-tcrt.to.web1 change-commit //depot/Concutest/ClassLoader/built/tcrt.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% tcrt.to.web”
run-tcrt.to.web2 change-commit //depot/Concutest/ClassLoader/built/tclib.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% tcrt.to.web”
run-tcrt.to.web3 change-commit //depot/Concutest/ClassLoader/built/tcrt.javadoc.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% tcrt.to.web”
run-tcrt.to.web4 change-commit //depot/Concutest/ClassLoader/built/tclib.javadoc.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% tcrt.to.web”
run-update-tc-javadoc change-commit //depot/Concutest/ClassLoader/built/tc*.javadoc.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /home/mgricken/bin/update-tc-javadoc”
run-subannot-to-xajavac change-commit //depot/Concutest/ClassLoader/built/subannot.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% subannot.to.xajavac”
run-xajavac.to.web change-commit //depot/Concutest/xajavac/jars/*.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-and-update-xajavac.sh %changelist% xajavac.to.web”
run-subannot-to-xajavac-web change-commit //depot/Concutest/ClassLoader/built/subannot.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-and-update-xajavac.sh %changelist% subannot.to.xajavac.web”
run-javacredir.to.web change-commit //depot/Misc/JavaCRedirector/* “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% javacredir.to.web”
run-xajavac.to.ClassLoader change-commit //depot/Concutest/xajavac/jars/xajavac.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% xajavac.to.ClassLoader”
run-ant-xajavac.to.ClassLoader change-commit //depot/Concutest/xajavac/jars/ant-xajavac.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% ant-xajavac.to.ClassLoader”
run-ant-xajavac.to.web change-commit //depot/Concutest/xajavac/jars/ant-xajavac.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% ant-xajavac.to.web”
run-ant-xajavac.to.web change-commit //depot/Concutest/xajavac/xajavac-apache-ant-1.7.0/src/main/org/apache/tools/ant/taskdefs/compilers/Xajavac.java “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% ant-xajavac.to.web”
run-617seminar.to.web change-commit //depot/Concutest/seminar/… “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% 617seminar.to.web”
run-617seminar.to.web2 change-commit //depot/Concutest/seminar/… “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% 617seminar.to.web2”
run-resume.to.superscalar change-commit //web/mgricken.cs/tmp/resume* “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% resume-to-superscalar”
run-resume.to.owlnet change-commit //web/mgricken.cs/tmp/resume* “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% resume-to-owlnet”
run-cv.to.superscalar change-commit //web/mgricken.cs/tmp/cv* “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% resume-to-superscalar”
run-cv.to.owlnet change-commit //web/mgricken.cs/tmp/cv* “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% resume-to-owlnet”
run-references.to.superscalar change-commit //web/mgricken.cs/tmp/references* “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% resume-to-superscalar”
run-references.to.owlnet change-commit //web/mgricken.cs/tmp/references* “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% resume-to-owlnet”
run-concjunitrt-ClassLoader-to-concjunit change-commit //depot/Concutest/ClassLoader/built/concjunitrt.jar “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% concjunitrt-ClassLoader-to-concjunit”
run-SIGCSE2010.to.web change-commit //depot/Concutest/SIGCSE2010/pdf/SIGCSE2010-Ricken-Test-First-Java-Concurrency-for-the-Classroom.pdf “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% SIGCSE2010.to.web”
run-SIGCSE2010.to.web2 change-commit //depot/Concutest/SIGCSE2010/assignment/sigcse2010-java-concurrency.zip “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% SIGCSE2010.to.web”
run-SIGCSE2010.to.web3 change-commit //depot/Concutest/SIGCSE2010/presentation/SIGCSE2010-Ricken-Test-First-Java-Concurrency-for-the-Classroom-2010-03-12.ppt “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% SIGCSE2010.to.web”
run-TWS.to.web change-commit //depot/ThesisWritingSeminar/talk/TWS-Ricken-Concutest-2010-02-25.ppt “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% TWS.to.web”
run-MintPurdue.to.web change-commit //depot/Mint/COMP600/purdue/Purdue-Ricken-Mint-2010-03-15.* “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% comp600.mint.purdue.to.web”
run-RiceResearchMixer2010.to.web change-commit //depot/Misc/Rice-grad-undergrad-research-mixer-2010/research-mixer-2010-ricken-poster-34-b.pdf “/usr/bin/ssh mgricken@finland.cs.rice.edu /local/mgricken/p4depot/scripts/integrate-branch.sh %changelist% RiceResearchMixer2010.to.web”
[/cc]
I haven’t migrated these scripts yet. I do run Cygwin on my Windows machines, of course, and I could set up sshd on them, but I’m wondering if that is still the right thing to do.
Furthermore, I really wanted to install the Perforce server on vector, the Pentium 3 machine I got over 10 years ago. Unfortunately, one of the hard drives crapped out again, and it’s a PATA drive. All drives are PATA drives. I think it may be time to retire vector.
I’m considering buying a new i7 desktop, which will become scalar, and then making the current scalar, my Core 2 Duo desktop, the new vector. But perhaps I should install Linux on vector then? What distribution? Ubuntu?
Many questions, and of course only a little time on weekends to do it.
Pingback: Getting My Perforce Back | A Concurrent Affair