I really share your pain in working with PVCS! That is a nightmare! I am still working with this piece of crap every day.
I can really recommend GIT to you. It is true that the program itself is not very user-friendly for most windows users. This is because it is just a command line tool. This is not a real problem anymore, there are a few tools available that have a nice GUI.
What you need to do is install MSYSGIT from http://git.or.cz/ . When installing it, you will be asked to put git in the system path, this is not default, but you need this, so choose this.
After installing msysgit, you need to install a tool to work with. I use GitExtensions wich I find very good (probably because I wrote the toolkit myself...). You can download GitExtensions from http://sourceforge.net/pro
You probably want to create a central repository... that is possible, but not the way you used to. Lets say you have a directory on a shared network drive you want to create the shared repository on, you can do this in GitExtensions by choosing "Init new repository" and check "central repository".
You have a nice empty central repository now, but you cannot just add files to it...... You NEED to create a repository on your local machine also, just init a new repository in the same dir as the sourcecode you want to control is in. You can now add the files you want to countrol by choosing commit. You will now notice that git that all files will be committed if you continue, even compiled files and debug info. DO NOT COMMIT THIS!!! To "exclude" or in git terms "ignore" these files, create a .gitignore file in the root of your new repository, on the same level as the .git directory, with something like this in it:
*.obj
*.exe
*.dll
*.html
*.exp
*.pdb
*.user
*.aps
*.pch
*.rgs
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.htm
*.zip
[Dd]ebug/
*.lib
*.sbr
[Ll]ib/
[Rr]elease*/
[Dd]ebug*/
[Tt]est[Rr]esults/
If you commit now, all compiled files will be ignored. Now you have an initial commit, all files are now in your local repository. Now you need to push this commit to the central repository using the "push" option in GitExtensions. Remember to check "Push all branches" because the central repository doen's now about your branch yet.
Other users will NEVER create a own local repository from now. When they start developing, they FIRST clone the central repository to there local drive. Then commit to this local repositroy, and push to the central repository. If they want new commits made to the central repository, they PULL the changes from there.
One last thing: if developers edit the same file, they do not lock the file. When pulling each others changes, they get a merge conflict. Git can let you sovle these. You need to download a tool for this, kdiff3. KDiff3 doesn't need to be installed, just copy kdiff3.exe into programfiles/git/bin/. GitExtensions probably warned you about this when starting it the first time, it also tells you how to set git up to use kdiff3.
If you have questions, just ask.
PS. I cannot recommend subversion. Its just not git....
Main Topics
Browse All Topics





by: bilco105Posted on 2008-12-27 at 09:22:57ID: 23248842
Personally I would reccommend Subversion for version controlling. We use it to version control all our system configuration files, DNS zonefiles, scripts, project documentation etc - its extremely flexible as you can see.
I've had no experience with Git though - so maybe other people can chime in here.