by WanWizard » Tue Oct 13, 2009 10:52 am
Hello,
The product we develop has a core component which is GPL, and stored in the /trunk repository directory. All optional modules are stored in the /modules repository directory, ordered per client. Some of these modules are GPL as well, some are client specific and closed source.
To work for a particular client, we do a checkout of the trunk, and then a separate checkout of all modules of that particular client to the modules directory of the working copy of the trunk. I see this as a manual version of svn:externals, which we can't use because that will taint the trunk code, and will point to parts of the repository that are inaccessible for some users (especially the public who needs the GPL version). Besides that, we need a different set of modules depending on the client we work for.
As the core code is under development as well, we don't want to create a branch for every customer (which would allow us to use svn:externals), because it would mean a lot of extra merge work.
With other SVN clients (we used Tortoise on Windows before moving to your excellent product on Linux) this is not an issue, file status is shown and we can do commits on these 'copied-in' checkouts without problems.
In SyncroSVN however (we use 5.0), the files in these module directories show up as unversioned, and I can't do a commit. If I do a right-click on such a file and select "SVN Information", it shows all the correct information (like the repo URL, author, version, and the file URL point correctly to /modules/clientA/modulename/..., etc).
Can this be fixed (or worked around)?