You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Jens Seidel <je...@users.sourceforge.net> on 2008/08/28 18:30:12 UTC

Missing checks for error diagnostics

Hi,

today I had a strange problem and I assumed an error in Subversion 1.5.2.

I tried to add a directory to my repository which I copied from another
location. svn complained that the directory is already contained in the
repository but it clearly isn't and svn status displays "?" for this
directory.

The reason is indeed simple but could nevertheless be hard to find:
The directory I tried to add contained a subdirectory .svn/ from another
repository.

Could Subversion stop using bogus .svn data or at least print a proper
diagnostics?

Jens

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

Re: Missing checks for error diagnostics

Posted by Julian Foad <ju...@btopenworld.com>.
On Wed, 2008-09-03 at 13:04 -0700, eg wrote:
> Julian Foad wrote:
> > On Fri, 2008-08-29 at 09:57 +0200, Jens Seidel wrote:
> >> On Fri, Aug 29, 2008 at 12:06:47AM +0100, Julian Foad wrote:
> >>> Jens Seidel wrote:
> >>>> today I had a strange problem and I assumed an error in Subversion 1.5.2.
> >>>>
> >>>> I tried to add a directory to my repository which I copied from another
> >>>> location. svn complained that the directory is already contained in the
> >>>> repository but it clearly isn't and svn status displays "?" for this
> >>>> directory.
> 
> Is this from:
> 
> r32636
> "Don't allow repository creation inside of an existant repository. This 
> was first mentioned on the users list here:
> http://svn.haxx.se/users/archive-2008-08/0800.shtml"

No, this problem is not related to change r32636. This problem is about
doing things in a working copy (including "svn add", hence the words
"add a directory to my repository"), whereas that was about doing things
on the server side.

- Julian



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

Re: Missing checks for error diagnostics

Posted by eg <eg...@gmail.com>.
Julian Foad wrote:
> On Fri, 2008-08-29 at 09:57 +0200, Jens Seidel wrote:
>> On Fri, Aug 29, 2008 at 12:06:47AM +0100, Julian Foad wrote:
>>> Jens Seidel wrote:
>>>> today I had a strange problem and I assumed an error in Subversion 1.5.2.
>>>>
>>>> I tried to add a directory to my repository which I copied from another
>>>> location. svn complained that the directory is already contained in the
>>>> repository but it clearly isn't and svn status displays "?" for this
>>>> directory.

Is this from:

r32636
"Don't allow repository creation inside of an existant repository. This 
was first mentioned on the users list here:
http://svn.haxx.se/users/archive-2008-08/0800.shtml"

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

Re: Missing checks for error diagnostics

Posted by Karl Fogel <kf...@red-bean.com>.
Julian Foad <ju...@btopenworld.com> writes:
> Thank you. This reproduction recipe makes it very clear what the problem
> is and how to reproduce it.
>
> I hope somebody will think of a solution and volunteer to fix it. (I
> don't suppose you know anybody who could do it, do you? The rest of us
> would be available to help, of course.)

Actually, an *enormous* help would just be to write a test case for
this, Jens, if you have time/energy for it.  See

   http://svn.collab.net/viewvc/svn?view=rev&revision=32142

for an example of how a test is added (although note that that test is
rather more complex than yours would need to be).

If we had a regression test for this, that would reduce the amount of
time needed to fix it by at least half.  And I think this test would be
fairly easy to write...

-Karl

>> $ svnadmin create repos
>> $ svnadmin create repos2
>> $ R=file://$(pwd)/repos
>> $ R2=file://$(pwd)/repos2
>> 
>> Create a directory wc2/dir/ with a .svn/ subdirectory:
>> 
>> $ svn co $R2 wc2
>> Checked out revision 0.
>> $ svn mkdir wc2/dir
>> A         wc2/dir
>> $ touch wc2/dir/file
>> $ svn add wc2/dir/file
>> A         wc2/dir/file
>> $ svn ci -m"Created dir/ with a file" wc2
>> Adding         wc2/dir
>> Adding         wc2/dir/file
>> Transmitting file data .
>> Committed revision 1.
>> 
>> Try to add the directory (but you do not remember about the old
>> repository and the contained (hidden) .svn/):
>> 
>> $ svn co $R wc
>> Checked out revision 0.
>> $ cp -r wc2/dir wc
>> $ svn add wc/dir
>> svn: warning: 'wc/dir' is already under version control
>> 
>> 
>> Now you could spend hours searching for a problem, inspecting the log,
>> dumping and reloading the repository, calling svnadmin verify, ...
>> 
>> 
>> $ svn info wc/dir
>> Path: wc/dir
>> URL: file:///tmp/svn/repos2/dir
>> Repository Root: file:///tmp/svn/repos2
>> Revision: 1
>> Node Kind: directory
>> Schedule: normal
>> Last Changed Author: jens 
>> Last Changed Rev: 1
>> Last Changed Date: 2008-08-29 09:54:31 +0200 (Fri, 29 Aug 2008)
>> 
>> Ths doesn't match as it still refers to the old repository :-)
>> 
>> > > The reason is indeed simple but could nevertheless be hard to find:
>> > > The directory I tried to add contained a subdirectory .svn/ from another
>> > > repository.
>> > > 
>> > > Could Subversion stop using bogus .svn data or at least print a proper
>> > > diagnostics?
>> 
>> Jens
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: dev-help@subversion.tigris.org

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

Re: Missing checks for error diagnostics

Posted by Julian Foad <ju...@btopenworld.com>.
On Fri, 2008-08-29 at 09:57 +0200, Jens Seidel wrote:
> On Fri, Aug 29, 2008 at 12:06:47AM +0100, Julian Foad wrote:
> > Jens Seidel wrote:
> > > today I had a strange problem and I assumed an error in Subversion 1.5.2.
> > > 
> > > I tried to add a directory to my repository which I copied from another
> > > location. svn complained that the directory is already contained in the
> > > repository but it clearly isn't and svn status displays "?" for this
> > > directory.
> > 
> > Jens,
> > 
> > I understand roughly what you are talking about, but it would be very
> > much easier to understand and gauge the severity of the problem if you
> > would show an exact transcript of your input and Subversion's output.
> 
> Sorry, I was very happy that I don't have to dig into my repository to
> try many hours to extract a recipy why it fails because the reason is so
> simple.  That's why I assumed a transcript is not necessary.
> Nevertheless here is it (using 1.5.2):

Jens,

Thank you. This reproduction recipe makes it very clear what the problem
is and how to reproduce it.

I hope somebody will think of a solution and volunteer to fix it. (I
don't suppose you know anybody who could do it, do you? The rest of us
would be available to help, of course.)

- Julian


> $ svnadmin create repos
> $ svnadmin create repos2
> $ R=file://$(pwd)/repos
> $ R2=file://$(pwd)/repos2
> 
> Create a directory wc2/dir/ with a .svn/ subdirectory:
> 
> $ svn co $R2 wc2
> Checked out revision 0.
> $ svn mkdir wc2/dir
> A         wc2/dir
> $ touch wc2/dir/file
> $ svn add wc2/dir/file
> A         wc2/dir/file
> $ svn ci -m"Created dir/ with a file" wc2
> Adding         wc2/dir
> Adding         wc2/dir/file
> Transmitting file data .
> Committed revision 1.
> 
> Try to add the directory (but you do not remember about the old
> repository and the contained (hidden) .svn/):
> 
> $ svn co $R wc
> Checked out revision 0.
> $ cp -r wc2/dir wc
> $ svn add wc/dir
> svn: warning: 'wc/dir' is already under version control
> 
> 
> Now you could spend hours searching for a problem, inspecting the log,
> dumping and reloading the repository, calling svnadmin verify, ...
> 
> 
> $ svn info wc/dir
> Path: wc/dir
> URL: file:///tmp/svn/repos2/dir
> Repository Root: file:///tmp/svn/repos2
> Revision: 1
> Node Kind: directory
> Schedule: normal
> Last Changed Author: jens 
> Last Changed Rev: 1
> Last Changed Date: 2008-08-29 09:54:31 +0200 (Fri, 29 Aug 2008)
> 
> Ths doesn't match as it still refers to the old repository :-)
> 
> > > The reason is indeed simple but could nevertheless be hard to find:
> > > The directory I tried to add contained a subdirectory .svn/ from another
> > > repository.
> > > 
> > > Could Subversion stop using bogus .svn data or at least print a proper
> > > diagnostics?
> 
> Jens



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

Re: Missing checks for error diagnostics

Posted by Jens Seidel <je...@users.sourceforge.net>.
On Fri, Aug 29, 2008 at 12:06:47AM +0100, Julian Foad wrote:
> Jens Seidel wrote:
> > today I had a strange problem and I assumed an error in Subversion 1.5.2.
> > 
> > I tried to add a directory to my repository which I copied from another
> > location. svn complained that the directory is already contained in the
> > repository but it clearly isn't and svn status displays "?" for this
> > directory.
> 
> Jens,
> 
> I understand roughly what you are talking about, but it would be very
> much easier to understand and gauge the severity of the problem if you
> would show an exact transcript of your input and Subversion's output.

Sorry, I was very happy that I don't have to dig into my repository to
try many hours to extract a recipy why it fails because the reason is so
simple.  That's why I assumed a transcript is not necessary.
Nevertheless here is it (using 1.5.2):

$ svnadmin create repos
$ svnadmin create repos2
$ R=file://$(pwd)/repos
$ R2=file://$(pwd)/repos2

Create a directory wc2/dir/ with a .svn/ subdirectory:

$ svn co $R2 wc2
Checked out revision 0.
$ svn mkdir wc2/dir
A         wc2/dir
$ touch wc2/dir/file
$ svn add wc2/dir/file
A         wc2/dir/file
$ svn ci -m"Created dir/ with a file" wc2
Adding         wc2/dir
Adding         wc2/dir/file
Transmitting file data .
Committed revision 1.

Try to add the directory (but you do not remember about the old
repository and the contained (hidden) .svn/):

$ svn co $R wc
Checked out revision 0.
$ cp -r wc2/dir wc
$ svn add wc/dir
svn: warning: 'wc/dir' is already under version control


Now you could spend hours searching for a problem, inspecting the log,
dumping and reloading the repository, calling svnadmin verify, ...


$ svn info wc/dir
Path: wc/dir
URL: file:///tmp/svn/repos2/dir
Repository Root: file:///tmp/svn/repos2
Revision: 1
Node Kind: directory
Schedule: normal
Last Changed Author: jens 
Last Changed Rev: 1
Last Changed Date: 2008-08-29 09:54:31 +0200 (Fri, 29 Aug 2008)

Ths doesn't match as it still refers to the old repository :-)

> > The reason is indeed simple but could nevertheless be hard to find:
> > The directory I tried to add contained a subdirectory .svn/ from another
> > repository.
> > 
> > Could Subversion stop using bogus .svn data or at least print a proper
> > diagnostics?

Jens

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

Re: Missing checks for error diagnostics

Posted by Julian Foad <ju...@btopenworld.com>.
Jens Seidel wrote:
> today I had a strange problem and I assumed an error in Subversion 1.5.2.
> 
> I tried to add a directory to my repository which I copied from another
> location. svn complained that the directory is already contained in the
> repository but it clearly isn't and svn status displays "?" for this
> directory.

Jens,

I understand roughly what you are talking about, but it would be very
much easier to understand and gauge the severity of the problem if you
would show an exact transcript of your input and Subversion's output.

Thanks.
- Julian

> The reason is indeed simple but could nevertheless be hard to find:
> The directory I tried to add contained a subdirectory .svn/ from another
> repository.
> 
> Could Subversion stop using bogus .svn data or at least print a proper
> diagnostics?




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