You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Bob Fletcher <ro...@ieee.org> on 2010/10/06 21:11:36 UTC

Problem with external file

I have a problem with external files on Windows XP using
TortoiseSVN 1.6.99, Build 20232 - 32 Bit -dev, 2010/10/03 22:28:49.
This is a nightly build which uses the WC 1.7 format.

I reported it on the TortoiseSVN forum and they suggested
reporting it here. Since this uses unreleased code, it was
recommended that I send this to dev@ rather than users@.

To show the problem:
(1) Create a project with an external file.
(2) Modify and Commit a change to an actual working copy of the file
     (in another project).
(3) Update the original project with the external file - even when
     omitting externals.
This gives the following Subversion Exception:

---------------------------
Subversion Exception!
---------------------------
Subversion encountered a serious problem.
Please take the time to report this on the Subversion mailing list
(users@subversion.apache.org)
with as much information as possible about what
you were trying to do.
But please first search the mailing list archives for the error message
to avoid reporting the same problem repeatedly.
You can find the mailing list archives at
http://subversion.apache.org/mailing-lists.html

Subversion reported the following:

In file
  'C:\Users\kueng\nightlybuilds\latest\TortoiseSVN\ext\subversion\subversion\libsvn_wc\update_editor.c'
  line 4603: assertion failed (status == svn_wc__db_status_added)
---------------------------
OK
---------------------------


By the way, if I include externals in the Update in step (3) above, I
get the same error.

Also, if I make a mod to the external file in the original project
and Commit the change, I get a similar problem.

However, a complete new Checkout of the project with the external file
works correctly, with the file changes being correctly incorporated.

I am certain I did not have this problem in the past, but it may have
been with the previous format when there were separate .svn folders
for each folder in the project.

Bob

Re: Problem with external file

Posted by Talden <ta...@gmail.com>.
> (Note to everybody else: Bob's decision to start testing 1.7, and
> report bugs here, ensures that his bugs are known and (hopefully)
> addressed before 1.7 ships.  Interested parties would do well to
> follow his example. :)

On this note.  I'd been testing 1.7 using the binaries at:

    http://nightlybuilds.tortoisesvn.net/latest/win32/small/

However my hardware recently rolled over and I'm on Win7 64-bit and
can't get these ones to work:

    http://nightlybuilds.tortoisesvn.net/latest/x64/small/

It fails with "The application was unable to start correctly
(0xc000007b)".  This seems to be a fairly unhelpful message.

1. Is anyone able to get these binaries to work?
2. Are there other 64-bit binaries we can use?

It would be good to be able to keep experimenting with Subversion
without everyone doing so having to build it themselves.

--
Talden

Re: Problem with external file

Posted by Stefan Küng <to...@gmail.com>.
On Tue, Oct 12, 2010 at 11:14, Philip Martin <ph...@wandisco.com> wrote:
> Bob Fletcher <ro...@ieee.org> writes:
>
>> For example, in response to svn --version, I would get
>> svn, version 1.7.0 (dev build)
>>    compiled Oct  9 2010, 00:09:42
>>
>> As you suggested, I downloaded the binaries just posted today on the same site.
>> Now in response to svn --version, I get
>> svn, version 1.7.0 (dev build)
>>    compiled Oct 11 2010, 00:09:54
>>
>> Based on the compiled dates, I was very skeptical that there
>> would be any difference. But guess what - the problem went away!
>> I am not certain that everything works perfectly,
>> but I no longer get the crash with the bad error message.
>>
>> Apparently, something was changed while I was adding noise to the forum.
>
> I'm not sure which revision of Subversion is used in the TSVN nightly
> builds.  The 4603 message is in the Subversion code, it's present in
> r993028, dated 2010-09-06, and not in r996473, dated 2010-09-13.
> That's not necessarily when the problem was fixed, it's quite possible
> that it would have failed with some other error message, but that's
> when Subversion could produce the 4603 message.
>
> I assume that the TSVN nightly has the most recent TSVN code, but that
> the Subversion code gets updated less frequently -- probably when
> Stefan determines that a recent Subversion "works".

Correct: TSVN nightly builds are always from the TSVN trunk, but due
to the APIs in the svn lib still changing, I can't link the externals
to the svn trunk but only to a specific revision of the svn trunk. The
current TSVN nightly build uses r1006173 of the svn trunk:
http://code.google.com/p/tortoisesvn/source/detail?r=20279


Stefan

-- 
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net

Re: Problem with external file

Posted by Philip Martin <ph...@wandisco.com>.
Bob Fletcher <ro...@ieee.org> writes:

> For example, in response to svn --version, I would get
> svn, version 1.7.0 (dev build)
>    compiled Oct  9 2010, 00:09:42
>
> As you suggested, I downloaded the binaries just posted today on the same site.
> Now in response to svn --version, I get
> svn, version 1.7.0 (dev build)
>    compiled Oct 11 2010, 00:09:54
>    
> Based on the compiled dates, I was very skeptical that there 
> would be any difference. But guess what - the problem went away!
> I am not certain that everything works perfectly,
> but I no longer get the crash with the bad error message.
>
> Apparently, something was changed while I was adding noise to the forum.

I'm not sure which revision of Subversion is used in the TSVN nightly
builds.  The 4603 message is in the Subversion code, it's present in
r993028, dated 2010-09-06, and not in r996473, dated 2010-09-13.
That's not necessarily when the problem was fixed, it's quite possible
that it would have failed with some other error message, but that's
when Subversion could produce the 4603 message.

I assume that the TSVN nightly has the most recent TSVN code, but that
the Subversion code gets updated less frequently -- probably when
Stefan determines that a recent Subversion "works".

-- 
Philip

Re: Problem with external file

Posted by Bob Fletcher <ro...@ieee.org>.
Philip Martin <philip.martin <at> wandisco.com> writes:


> There is no assert on line 4603 in the current code, it's not possible
> for the current code to produce that error.  There was an assert on
> that line back in r993028 but that dates from more than a month ago.
> If you try a more up-to-date build then the problem may well have been
> fixed.

Hi Philip,

I was using recent binaries from
http://nightlybuilds.tortoisesvn.net/latest/win32/small/

For example, in response to svn --version, I would get
svn, version 1.7.0 (dev build)
   compiled Oct  9 2010, 00:09:42

As you suggested, I downloaded the binaries just posted today on the same site.
Now in response to svn --version, I get
svn, version 1.7.0 (dev build)
   compiled Oct 11 2010, 00:09:54
   
Based on the compiled dates, I was very skeptical that there 
would be any difference. But guess what - the problem went away!
I am not certain that everything works perfectly,
but I no longer get the crash with the bad error message.

Apparently, something was changed while I was adding noise to the forum.

Thanks,
Bob




Re: Problem with external file

Posted by Philip Martin <ph...@wandisco.com>.
Bob Fletcher <ro...@ieee.org> writes:

> OK. I was able to create the error using the command line. The
> following are the steps I took. I sure hope this is helpful. (In the
> steps below, I changed the name of my company in the URL to xxx.)

Thanks for doing this.  I tried your recipe on my Linux machine and it
doesn't crash, however:

> 'C:\Users\kueng\nightlybuilds\latest\TortoiseSVN\ext\subversion\subversion\libsv
> n_wc\update_editor.c' line 4603: assertion failed (status == svn_wc__db_status_added)

There is no assert on line 4603 in the current code, it's not possible
for the current code to produce that error.  There was an assert on
that line back in r993028 but that dates from more than a month ago.
If you try a more up-to-date build then the problem may well have been
fixed.

-- 
Philip

Re: Problem with external file

Posted by Bob Fletcher <ro...@ieee.org>.
OK. I was able to create the error using the command line. The following are the 
steps I took. I sure hope this is helpful. (In the steps below, I changed the 
name of my company in the URL to xxx.)

(1) Create a local TestLib directory with a single file libfile.h.

(2) Import this to repo.
C:\Dev\rhf>svn import TestLib http://svn1.xxx.com/svn/rhf/TestLib -m"Initial 
import"

(3) Delete the local TestLib and then checkout a WC.
C:\Dev\rhf> svn checkout http://svn1.xxx.com/svn/rhf/TestLib

At this point we have TestLib in the repo and a checked out WC.

(4) Now create another local directory, TestPrj, with a single file prjfile.txt 
    and import this to the repository.
C:\Dev\rhf>svn import TestPrj http://svn1.xxx.com/svn/rhf/TestPrj -m"Initial 
import"

(5) Delete the local TestPrj directory and checkout a WC.
C:\Dev\rhf> svn checkout http://svn1.xxx.com/svn/rhf/TestPrj

(6) Make the file TestLib/libfile.h an external file in TestPrj. 
(The Subversion book was very confusing here and I finally found this syntax 
from a google search.)
C:\Dev\rhf\TestPrj>svn propset svn:externals 
"http://svn1.xxx.com/svn/rhf/TestLib/libfile.h libfile.h" .
property 'svn:externals' set on '.'

(7) Commit the change and update.
C:\Dev\rhf\TestPrj>svn update

Fetching external item into 'libfile.h'
E    libfile.h
Updated external to revision 3076.

Updated to revision 3076.

(8) Check the status.
C:\Dev\rhf\TestPrj>svn status -v
              3076     3076 rfletcher    .
              3076     3075 rfletcher    prjfile.txt
    X         3076     3072 rfletcher    libfile.h

Everything looks fine at this point, here and in the repo browser.

    
(9) Now go to the WC of TestLib, modify and commit libfile.h.
C:\Dev\rhf\TestLib>svn commit -m"test change"
Sending        libfile.h
Transmitting file data .
Committed revision 3077.

(11) Check the status of TestLib
C:\Dev\rhf\TestLib>svn status -v
              3071     3071 rfletcher    .
              3077     3077 rfletcher    libfile.h


(12) Return to TestPrj and attempt to Update. This gives an error.
C:\Dev\rhf\TestPrj>svn update
svn: In file 
'C:\Users\kueng\nightlybuilds\latest\TortoiseSVN\ext\subversion\subversion\libsv
n_wc\update_editor.c' line 4603: assertion failed (status == 
svn_wc__db_status_added)
  
(13) Check the status of TestPrj - note the !.
C:\Dev\rhf\TestPrj>svn status -v
! L           3077     3076 rfletcher    .
              3076     3075 rfletcher    prjfile.txt
    X         3076     3072 rfletcher    libfile.h

    
By the way, if I do a complete new checkout of TestPrj, 
libfile.h is modified as expected.

Bob

Re: Problem with external file

Posted by Julian Foad <ju...@wandisco.com>.
On Sun, 2010-10-10 at 15:23 +0000, Bob Fletcher wrote:
> > > Maybe I can get something this weekend.
> > 
> > Thanks.
> > 
> > By the way, we aren't trying to make life harder on you, or introduce
> > some difficult-to-clear bar for getting bugs fixed.  The developers as
> > just hard at work on actually shipping 1.7, so doing the bits you can
> > helps keep us from getting too distracted, and also helps get your bug
> > fixed sooner.
> 
> I started to see if I could get the external file error with the command line 
> client.  Before spending a lot of time, however, I would like to know if there 
> could be a compatibility problem with the server version number.
> 
> The server repository, at my company, is using Subversion version 1.5.1. The 
> client code I have been experimenting with uses the 1.7 WC format. If these are 
> known to be incompatible, then I would probably be wasting my time.

All 1.*.* versions of client are meant to be compatible with all 1.*.*
versions of server, so you are not wasting your time.  Thanks!

- Julian


Re: Problem with external file

Posted by Bob Fletcher <ro...@ieee.org>.
> > Maybe I can get something this weekend.
> 
> Thanks.
> 
> By the way, we aren't trying to make life harder on you, or introduce
> some difficult-to-clear bar for getting bugs fixed.  The developers as
> just hard at work on actually shipping 1.7, so doing the bits you can
> helps keep us from getting too distracted, and also helps get your bug
> fixed sooner.

I started to see if I could get the external file error with the command line 
client.  Before spending a lot of time, however, I would like to know if there 
could be a compatibility problem with the server version number.

The server repository, at my company, is using Subversion version 1.5.1. The 
client code I have been experimenting with uses the 1.7 WC format. If these are 
known to be incompatible, then I would probably be wasting my time.

Thanks,
Bob


Re: Problem with external file

Posted by "Hyrum K. Wright" <hy...@mail.utexas.edu>.
On Thu, Oct 7, 2010 at 9:09 AM, Bob Fletcher <ro...@ieee.org> wrote:
> Philip Martin <philip.martin <at> wandisco.com> writes:
>
>> Ideally these would be commands we could execute using the command
>> line client.

Of even a script with these commands in it (though that isn't always feasible).

>
>
> Thanks, Philip.
>
> I normally use TortoiseSVN so I will have to spend some time seeing if/how this
> occurs with the command line client. Maybe I can get something this weekend.

Thanks.

By the way, we aren't trying to make life harder on you, or introduce
some difficult-to-clear bar for getting bugs fixed.  The developers as
just hard at work on actually shipping 1.7, so doing the bits you can
helps keep us from getting too distracted, and also helps get your bug
fixed sooner.

-Hyrum

(Note to everybody else: Bob's decision to start testing 1.7, and
report bugs here, ensures that his bugs are known and (hopefully)
addressed before 1.7 ships.  Interested parties would do well to
follow his example. :)

Re: Problem with external file

Posted by Bob Fletcher <ro...@ieee.org>.
Philip Martin <philip.martin <at> wandisco.com> writes:

> Ideally these would be commands we could execute using the command
> line client.


Thanks, Philip. 

I normally use TortoiseSVN so I will have to spend some time seeing if/how this 
occurs with the command line client. Maybe I can get something this weekend.

Bob

Re: Problem with external file

Posted by Philip Martin <ph...@wandisco.com>.
Bob Fletcher <ro...@ieee.org> writes:

> To show the problem:
> (1) Create a project with an external file.
> (2) Modify and Commit a change to an actual working copy of the file
>     (in another project).
> (3) Update the original project with the external file - even when
>     omitting externals.
> This gives the following Subversion Exception:

That's not enough detail to reproduce the problem.  You need to
describe every step, something like (I'm just guessing here):

- create a repository
- checkout a working copy
- add a file wc/foo to the working copy
- commit the file
- add a file-external '^/foo bar' to the working copy root
- commit the file-external
- update the working copy
- checkout a second working copy
- modify the file in the second working copy
- commit the second working copy
- update the first working copy

Ideally these would be commands we could execute using the command
line client.

-- 
Philip