One issue I always had with writing papers was to synchronize my work with other co-writers. The process is normally like that I write the draft version of the paper. Forward it to my supervisor and other co-writers. They apply the changes and send the paper back to me, so that I can merge the changes. This process is utterly painful. I prefer Latex to Word, and unfortunately there is not an easy way to track changes in Latex. In word, you can activate track changes and pass the document around but not in Latex.
What I do now, is that I write my Latex draft. Check it out using Portable Version. Send in the whole folder to co-authors (a .zip file). They do what they want to the latex folder and files and pass it back to me. I can check in their changes to the folder one by one and work out the diffs and modifications to the folder like newly added images or the files moved around.
To make Portable Version work with Latex files, I just have to disable the TFS integration. Currently the way to do this is to edit “Tfs.Config” file from where portable version is installed and replace every command with a harmless command (i.e. Command = “Cmd /c “ and every parameter = “ echo %1”)
Portable Version (PV) can make your life much sweeter if you use it properly. Note that PV in not a full fledge version control system. In contrary it is designed for quick and dirty synchronization between temporary copies (called slave) and the version controlled copy (called master). Example below depicts some situation where PV may be used:
I have a few solutions at work which are quiet large. Each solution contains more than 100 projects and as you would imagine there are many policies around checking in stuff to the TFS server. Also any access to the work network involve a lot of IT politics which every developer wants to avoid.
This weekend I want to go home early and finish the task I was up to, at Sunday afternoon. I have a copy of the solution on my flash drive which I delete and overwrite time to time. If I work on my copy of the solution Sunday afternoon, I have to remember all the changes next morning and re-apply them to the solution on my work machine. Of course I can’t just copy the solution back because that would screw the TFS up.
This is when PV comes to rescue. I simply check out the project folder I want to work on to its folder on my flash drive (right click on folder and select checkout), take it home and work on it Sunday afternoon. Monday when I come back to work, I check the project back in (right click on .pvml file and select check in). PV takes care of all necessary actions for making sure TFS knows what you have changed. Even if I rename or move a file in my flash drive, PV will recognize that and run the “tf –rename “ command to apply my change to TFS. (Currently support for renaming and moving folders makes check-in a bit tricky and you may need to modify the .pvml file for best results, but renaming and moving files works nice).
Bottom-line is that, I should keep my changes short and small. PV is not a commercial product and I do not guaranty any loss or confusion of information, hence, if you want to check the whole solution of 200 project out using PV and take the solution to your round the world cruise and come back and synchronize your 90 days worth of change with TFS, you better make sure you understand how PV works exactly and also take a good look at the source code (from codeplex).
Ever fancied to carry your shelf on a flash drive or put it on your dropbox?
Portable Version is a portable tool to synchronize any folder with your “Version Controlled” folder (currently only TFS).
Want to take your solution home, put it on Dropbox and work from anywhere freely? Check back in and resolve conflicts?
I initially wrote this little tool for my own use but you may also benefit from it.