You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by cm...@collab.net on 2002/06/21 14:15:35 UTC

Re: Error during commit (bug or my incompetence?)

Peter Schuller <pe...@infidyne.com> writes:

> Hello,
> 
> I've been following the project for a while and finally decided to try
> it out. While testing various repository functions I encountered a
> problem after an 'svn copy' command:
> 
>    svn cp directory_newname alpha2
> 
> I then did an 'svn commit' and got the following message:
> 
> Adding         alpha2
> Adding         alpha2/aFile.txt
> 
> svn_error: #21053 : <General filesystem error>
>   Commit failed (details follow):
> 
> svn_error: #21053 : <General filesystem error>
>   add_file `alpha2/aFile.txt': got copy_path, but no copy_rev
> 
> 
> Am I doing something wrong or might this be a bug?
> 
> After doing a "svn revert --recursive ." and re-issuing the svn copy
> command, a commit was successful.

Is this whole process easy to reproduce?  That is, can you post a
recipe for the this exact failure case?  I'd like to know how much
state was built up in your working copy prior to that first
copy/commit attempt.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Error during commit (bug or my incompetence?)

Posted by cm...@collab.net.
I know, I know -- it's been a long time.  But I finally freed up a few
cycles to look at your bug.

> In any case, here's select parts of my bash history that affects
> svn. I'll try to be complete but skipping typos, ls and such:
> 
> ./svnadmin create ~/svn
> < created some files in a directory >
> svnadmin import file:///home/scode/svn .
> mkdir co
> cd co
> svn co file:///home/scode/svn
> cd svn/
> vim README 
> svn commit
> svn move directory directory_newname
> svn commit
> rm -rf directory
> svn cp directory_newname alpha1
> svn commit
> svn status
> svn update
> svn log directory_newname/
> svn log alpha1
> cd directory_newname/
> vim aFile.txt 
> svn commit -m 'Added a line of text'
> vim secondfile
> svn commit -m 'added file'
> svn add secondfile 
> svn commit -m 'added file'
> cd ..
> svn cp directory_newname alpha2
> svn commit
> 
> And this is where I got the error message. I tried commiting multiples
> times etc. Then I did that revert, and another svn copy followed by a
> svn commit completed successfully.

In a previous mail of yours, you said you were getting the following
message:

   Adding         alpha2
   Adding         alpha2/aFile.txt
   
   svn_error: #21053 : <General filesystem error>
   Commit failed (details follow):
   
   svn_error: #21053 : <General filesystem error>
   add_file `alpha2/aFile.txt': got copy_path, but no copy_rev

Now, this bug I know Ben fixed recently.  However, now I'm getting:

   subversion/libsvn_client/commit.c:685
   svn_error: #21084 : <Transaction is out of date>
     Commit failed (details follow):
   
   subversion/libsvn_ra_local/commit_editor.c:112
   svn_error: #21084 : <Transaction is out of date>
     out of date: `alpha2/aFile.txt' in txn `8'

And reverting, re-copying, and re-committing doesn't change anything
(well, except the txn number increments by 1 each time).  And
technically speaking, the error is correct -- the specific state of
my working copy is technically bound to clash with stuff.  Why?

Well, here is the `svn st -v' before the copy:

   _               4        4   cmpilato   .
   _               4        2   cmpilato   ./README
   _               4        4   cmpilato   ./alpha1
   _               4        4   cmpilato   ./alpha1/aFile.txt
   _               4        3   cmpilato   ./directory_newname
   _               5        5   cmpilato   ./directory_newname/aFile.txt
   _               6        6   cmpilato   ./directory_newname/secondfile

And afterward:

   _               4        4   cmpilato   .
   _               4        2   cmpilato   ./README
   _               4        4   cmpilato   ./alpha1
   _               4        4   cmpilato   ./alpha1/aFile.txt
   A  +            -        3   cmpilato   ./alpha2
   _  +            -        5   cmpilato   ./alpha2/aFile.txt
   _  +            -        6   cmpilato   ./alpha2/secondfile
   _               4        3   cmpilato   ./directory_newname
   _               5        5   cmpilato   ./directory_newname/aFile.txt
   _               6        6   cmpilato   ./directory_newname/secondfile

Now, while it isn't shown above, the "copyfrom revisions" of alpha2,
alpha2/aFile.txt, and alpha2/secondfile are 4, 5, and 6 respectively.

Under the hood, the fact that the files in alpha2 have different
revisions than alpha2 itself means that during the commit, they are
each copied individually in addition to the copy of alpha2 itself.
That is, we see these operations:

   copy revision 4 of directory_newname to alpha2
   copy revisoin 5 of directory_newname/aFile.txt to alpha2/alFile.txt
   copy revisoin 6 of directory_newname/secondfile to alpha2/secondfile
   
Those additional copies are conflicting with themselves (please don't
ask me to explain it right now...I'm sleepy).  Note that if you insert
an `update' before the `copy; commit', it should all work.  Why?
Well, after the update everything in the tree is at revision 6, so the
commit's copy operation is a single non-conflicting step:

   copy revision 6 of directory_newname to alpha2

Anyway.  All that to say that your original bug is, I believe, fixed,
but your particular use-case still highlights some places where
Subversion could stand improvement.




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Error during commit (bug or my incompetence?)

Posted by Peter Schuller <pe...@infidyne.com>.
> > I've now encountered the same problem again; the local copy and/or
> > repository is now in a broken state, and I'll leave it there.
> > 
> > What, if anything, should I provide for debugging purposes?
> 
> Well, if the problem can be reproduced with an arbitrary data set, you
> might consider just a shell-script that demonstrates the problem.

Well, I haven't been able to figure out exactly what triggers it. All I
know is that so far it's always happened when trying to commit after an
svn copy.

However the "broken" state repository I mentioned above consists of
basically 3 files in a directory copied 3 times with svn copy (only once
after the lastest successful commit). I dunno; perhaps a tarball of the
files might help?

If I ever figure out how to reproduce it with a specific set of
commands, I'll let you know.

-- 
/ Peter Schuller, InfiDyne Technologies HB

PGP userID: 0xE9758B7D or 'Peter Schuller <pe...@infidyne.com>'
Key retrival: Send an E-Mail to getpgpkey@scode.org
E-Mail: peter.schuller@infidyne.com Web: http://www.scode.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Error during commit (bug or my incompetence?)

Posted by cm...@collab.net.
Peter Schuller <pe...@infidyne.com> writes:

> > I'll try to reproduce it later tonight. Would a snapshot of the local
> > set of files in a "broken state" be useful, assuming I succeed?
> 
> I've now encountered the same problem again; the local copy and/or
> repository is now in a broken state, and I'll leave it there.
> 
> What, if anything, should I provide for debugging purposes?

Well, if the problem can be reproduced with an arbitrary data set, you
might consider just a shell-script that demonstrates the problem.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Error during commit (bug or my incompetence?)

Posted by Peter Schuller <pe...@infidyne.com>.
> I'll try to reproduce it later tonight. Would a snapshot of the local
> set of files in a "broken state" be useful, assuming I succeed?

I've now encountered the same problem again; the local copy and/or
repository is now in a broken state, and I'll leave it there.

What, if anything, should I provide for debugging purposes?

-- 
/ Peter Schuller, InfiDyne Technologies HB

PGP userID: 0xE9758B7D or 'Peter Schuller <pe...@infidyne.com>'
Key retrival: Send an E-Mail to getpgpkey@scode.org
E-Mail: peter.schuller@infidyne.com Web: http://www.scode.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Error during commit (bug or my incompetence?)

Posted by Peter Schuller <pe...@infidyne.com>.
> Is this whole process easy to reproduce?  That is, can you post a
> recipe for the this exact failure case?  I'd like to know how much
> state was built up in your working copy prior to that first
> copy/commit attempt.

I'll try to reproduce it later tonight. Would a snapshot of the local
set of files in a "broken state" be useful, assuming I succeed?

In any case, here's select parts of my bash history that affects svn. I'll try
to be complete but skipping typos, ls and such:

./svnadmin create ~/svn
< created some files in a directory >
svnadmin import file:///home/scode/svn .
mkdir co
cd co
svn co file:///home/scode/svn
cd svn/
vim README 
svn commit
svn move directory directory_newname
svn commit
rm -rf directory
svn cp directory_newname alpha1
svn commit
svn status
svn update
svn log directory_newname/
svn log alpha1
cd directory_newname/
vim aFile.txt 
svn commit -m 'Added a line of text'
vim secondfile
svn commit -m 'added file'
svn add secondfile 
svn commit -m 'added file'
cd ..
svn cp directory_newname alpha2
svn commit

And this is where I got the error message. I tried commiting multiples
times etc. Then I did that revert, and another svn copy followed by a
svn commit completed successfully.

-- 
/ Peter Schuller, InfiDyne Technologies HB

PGP userID: 0xE9758B7D or 'Peter Schuller <pe...@infidyne.com>'
Key retrival: Send an E-Mail to getpgpkey@scode.org
E-Mail: peter.schuller@infidyne.com Web: http://www.scode.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org