I can't seem to find this particular problem in the archives, but that may be my ignorance of the terminology.

I want to start using svn for a project which currently has four user machines, each with their own copy of the codebase, kept in sync by manual scp to and from one of the machines which has been acting as master.

I have created an svn repository on another host, and added all the files from one user machine to it (some weeks ago), so everything was present but unversioned. Since then, a few of those files have been manually edited on that user machine, without checking them out, so the first question is, how do I push those few files to the server so that the repository contains the updated copies? If I use add or checkin, it fails on the first changed file, saying it already exists:

Adding         0007.pdf
svn: Commit failed (details follow):
svn: File '/svn/interfaces/0007.pdf' already exists

which is perfectly understandably as it was never checked out but edited locally. Is there a command that will force the server to accept a file that has been modified locally, or should I just wipe the whole repo and start afresh?

Assuming I can solve that one, I then need to add the other user machines' files. All the major components of the project will already be identical, so they can be checked out from the repository, but many smaller files, mostly reference and historical material, will be different on each user machine, but the most recent one is what I need (all the machines run ntp, so I am assuming I can trust the timestamps). None of these are critical, but it would be nice to have them added and checked in only if their timestamp is more recent than any copy already in the repository. Can this be done using svn, or do I need to do it manually (well, maybe with rsync) and then checkin the result?

///Peter

Reply via email to