subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Reedick <>
Subject RE: Strange behavior
Date Mon, 12 Aug 2013 17:38:42 GMT

> -----Original Message-----
> From: John Maher []
> Sent: Monday, August 12, 2013 10:18 AM
> To: Ryan Schmidt
> Cc: Subversion Users
> Subject: RE: Strange behavior
> Thanks for your help, but I still do not know how to get this to work.
> Perhaps I should give a little background.  The project that I
> mentioned in my original post was a test project created just to learn
> how to get subversion to work.  The production code that I wish to put
> in one repository resides in 62 directories that have over 2000 files
> in them of which only some of them can be included otherwise merging
> becomes impossible.  The whole point of this exercise is to get merging
> to work since it causes unnecessary difficultly to try to separate new
> features with bug fixes in a single branch.  But this is all I could
> get to work.  Unfortunately no matter how much I read (I read the first
> half of the book twice) and how much I checkout and commit the tool
> fails to work for me.

You're overthinking this.  You can use OS level commands to trim down the files to import.
 Copy the files to a temp directory, delete the files you don't want imported, and then run
'svn import' on the tmp dir.  Even if you have mistakes in the import, you can use 'svn rm'
and 'svn add' to clean things up. 

It would be nice if you could pass 'svn import' a list of filenames/regexes to include or
exclude, but modern shells already have the tools to filter and delete files, so there's little
need to add those wheels to 'svn import'.  Especially since the import is normally a one-time

Are you using 'svn import' multiple times?  (Such as to create additional branches of the
code?)  If so, that would be bad, as in wrong paradigm/workflow.

As for branching, here's the short version for the 1.8 svn client:
0) Use 'svn import' to create the initial baseline, say /trunk.
1) Create the branch:  'svn copy svn:/server/trunk svn:/server/branches/foo.2.0.0'
2) Create branch workspace:  cd /myworkspaces && svn co svn:/server/branches/foo.2.0.0'
&& cd foo.2.0.0 

3) Work on foo.2.0.0
3.1) 'svn add' to add new files (svn:ignore will help here.)
3.2) 'svn ci' to commit the files
3.2) Periodically merge trunk changes up to foo.2.0.0:  svn merge ^/trunk
    Note:  makes sure your foo.2.0.0 changes are checked in before merging up from trunk,
'svn status'

When foo.2.0.0 is "done", first merge trunk up to foo.2.0.0 to make sure that foo.2.0.0 has
the current trunk changes
4) 'svn merge ^/trunk'
4.1) Resolve any conflicts.

Now merge foo.2.0.0 down to trunk.
5) Create a clean merge workspace
    cd /myworkspaces && 'svn co svn:/server/trunk' && cd trunk
    Note:  if you are reusing a workspace, then 'svn status' and 'svn update' to make sure
it's clean and ready for a merge.
6) 'svn merge ^/branches/foo.2.0.0'
6.1) Resolve any conflicts.
7) 'svn ci'

View raw message