On Jul 31, 2006, at 12:05, Andreas Schweigstill wrote:
> The behaviour of
>
> svn co svn://myserever/myproject
>
> and
>
> svn co -r123 svn://myserever/myproject
> svn merge -r123:HEAD
>
> should be the same. But when there were some files added between
> R123 and HEAD there is given an error message on the following
> svn commit.
Those aren't the same operations at all, and the errors you're
getting are expected because the operations do not make sense...
Presumably HEAD is greater than 123. Let's say it's 500. "svn co
$URL" therefore means "check out revision 500 of $URL". You can now
happily make changes to the working copy and check them in if you like.
"svn co -r123 $URL" means "check out revision 123 of $URL". "svn
merge -r123:HEAD $URL" (note that you need to tell svn merge what
path to merge from -- $URL here) means "now perform local
modifications equal to the modifications that occurred on $URL
between revisions 123 and 500". After the merge, Subversion forgets
that the local modifications occurred due to a merge; to Subversion,
the modifications look like any other local modification, for example
like those you would make by hand. Now you cannot commit your working
copy for two reasons: a) it is not up-to-date, and b) the
modifications that have not yet been committed are modifications
which already exist in the repository, therefore to not make sense to
commit again.
However: the following two commands are equivalent to the original
checkout; perhaps that's what you're looking for:
svn co -r123 $URL
svn up -rHEAD (the same as just "svn up")
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Mon Jul 31 13:06:11 2006