I am forced to use VSS at work, but use SVN for a personal repository. What is the best way to sync between VSS and sync?
A:
What I have done in the past is as follows:
- Make sure all my changes are committed to svn://trunk
- Do a get latest from VSS into my working copy.
- Manually merge the changes in my working copy.
- Commit the merged code into the svn://trunk
- Do a VSS diff and checkout any files with differences (without overwriting files)
- Check in those files.
Adam Tegen
2008-09-11 19:16:25
+3
A:
To get rid of the manual merge step, I could use a separate svn branch (svn://branches/VSS) as follows:
- Create a working copy of svn://branches/VSS
- Do a VSS Get Latest on this working copy
- svn commit
- svn merge from svn://trunk
- svn commit
- Do a VSS diff and checkout all files (without overwriting) with differences
- Check in those files
- reintegrate svn://branches/VSS into svn://trunk
Adam Tegen
2008-09-11 19:23:32
+1
A:
You could also treat this as a vendor supplied branch as defined in the redbean book: Vendor Branches
With this, the basic flow would be:
- Have a vendor branch "branches/VSS/current" containing the latest code from VSS
- Tag the current version as "branches/VSS/2008-09-15"
- Next day, get the new files into "current"
- Tag again into "branches/VSS/2008-09-16"
- Merge differences between the two tags into trunk, resolving conflicts
- Delete old tags as required
This is actually the technique we used when migrating from VSS to SVN. If you care about the return trip from SVN->VSS, you'll just have to diff between trunk and branches/VSS/current and apply the diffs to VSS.
Jim T
2008-09-15 14:41:13