Matthew J Fletcher wrote:
Hi,
vss2svn does a very good job of importing the history and the project
layout, unfortunately it does not seem to cope so well with files that
have been shared in VSS between projects.
Would it be possible to modify the script to use the 'export' property
of SVN, not being an expert on such matters i am not sure if the two
functionalities are the same.
I converted a project that had made extensive use of VSS file sharing.
In the end, the best solution (and simpler than it may seem) was to do away
with the file sharing - if a file is, by design, to be used by several
projects, it was put into a /common/include/ folder, or /common/sources/ for
non-header files.
Each project then had ../common/include (or similar appropriate relative
reference) added onto its include path, and any common source files included
from the ../common/sources folder. There was one exception where a project used
90% of the same files as another - in this instance the project file was
changed using a search and replace to reference the files directly in their
original location.
Almost all of this refactoring was done in VSS *before* conversion, making use
of the sharing facility for this.
Afterwards, I'd wished this had been done years before, as several problems
caused by shared files (e.g. making a change in one project, and not realising
it caused a problem for another project until after it was checked in and the
other project updated) went away, as both or all projects can be compiled
before check-in.
One possibility I'd considered, but didn't do in the end, was to use
share-and-branch for the share to the common/include folder, and then check in
a new version of the original file consisting of a single line like:
#include "../common/include/MyHeaderFile.h"
or
#include "../common/sources/MySourceFile.cpp"
Perhaps others may find a similar approach useful?
_______________________________________________
vss2svn-users mailing list
Project homepage:
http://www.pumacode.org/projects/vss2svn/
Subscribe/Unsubscribe/Admin:
http://lists.pumacode.org/mailman/listinfo/vss2svn-users-lists.pumacode.org
Mailing list web interface (with searchable archives):
http://dir.gmane.org/gmane.comp.version-control.subversion.vss2svn.user