merginfo corruption?

2016-10-27 Thread Peter van Hoof

Hi,

Recently we have been having multiple instances of a problem that doesn't seem 
to be going away. The easiest way to see it is to reproduce the following steps.


1) check out a working copy of one of our development branches:

svn co svn://svn.nublado.org/cloudy/branches/backtrace

Changes from the trunk were last merged to this branch in r11144. This checkout 
looks fine and I want to merge the more recent changes from the trunk. So cd 
into it and proceed.


2) First take a look at which revisions are eligible:

svn mergeinfo --show-revs eligible ^/trunk .
r11156
r11159
r11160
r11165
r11166
r11167
   [ snip... ]
r11337
r11338
r11339
r11340
r11341

This all looks very plausible. The first commit to the trunk after r11144 is 
r11156 and the last is r11341. All numbers shown above are correct. I didn't 
check all the numbers I cut out, but I assume they are correct as well.


3) All looks fine, so do the merge:

svn merge ^/trunk .
--- Merging r8669 into 'source':
Csource/rt_continuum_shield_fcn.cpp
--- Recording mergeinfo for merge of r8667 through r8669 into '.':
 U   .
--- Recording mergeinfo for merge of r8667 through r8669 into 'source':
 U   source
Summary of conflicts:
  Text conflicts: 1
Conflict discovered in file 'source/rt_continuum_shield_fcn.cpp'.
Select: (p) postpone, (df) show diff, (e) edit file, (m) merge,
(mc) my side of conflict, (tc) their side of conflict,
(s) show all options: ^CSummary of conflicts:
  Text conflicts: 1
svn: E155027: Unable to resolve conflicts on 
'/home/pvh/noot/backtrace/source/rt_continuum_shield_fcn.cpp'


I hit ^C here. So all of a sudden svn wants to merge r8669, even though it was 
not marked as eligible before (and was already merged a long time ago)...


So what is this? Corrupted information in the svn:mergeinfo propety? A bug in 
svn? Or both?


And more importantly how do I fix this? I tried doing this brute-force approach

svn revert -R .

svn merge --record-only -r1:11144 ^/trunk .
--- Merging r2 through r11144 into '.':
 G   tsuite/auto
 G   tsuite
 G   .
--- Recording mergeinfo for merge of r2 through r11144 into '.':
 U   .
--- Recording mergeinfo for merge of r2 through r11144 into 
'data/lamda/masterlist/Lamda.ini':

 U   data/lamda/masterlist/Lamda.ini
--- Recording mergeinfo for merge of r2 through r11144 into 
'data/stout/zn/zn_19/zn_19.coll':

 U   data/stout/zn/zn_19/zn_19.coll
--- Eliding mergeinfo from 'data/stout/zn/zn_19/zn_19.coll':
 U   data/stout/zn/zn_19/zn_19.coll
--- Recording mergeinfo for merge of r2 through r11144 into 
'data/stout/zn/zn_19/zn_19.nrg':

 U   data/stout/zn/zn_19/zn_19.nrg
--- Eliding mergeinfo from 'data/stout/zn/zn_19/zn_19.nrg':
 U   data/stout/zn/zn_19/zn_19.nrg
--- Recording mergeinfo for merge of r2 through r11144 into 
'data/stout/zn/zn_19/zn_19.tp':

 U   data/stout/zn/zn_19/zn_19.tp
--- Eliding mergeinfo from 'data/stout/zn/zn_19/zn_19.tp':
 U   data/stout/zn/zn_19/zn_19.tp
--- Recording mergeinfo for merge of r2 through r11144 into 'source':
 U   source
--- Recording mergeinfo for merge of r2 through r11144 into 'tsuite':
 U   tsuite
--- Recording mergeinfo for merge of r2 through r11144 into 'tsuite/auto':
 U   tsuite/auto
--- Recording mergeinfo for merge of r2 through r11144 into 
'tsuite/auto/chianti_all_cool.dat':

 U   tsuite/auto/chianti_all_cool.dat
--- Recording mergeinfo for merge of r2 through r11144 into 
'tsuite/auto/chianti_all_cool.in':

 U   tsuite/auto/chianti_all_cool.in

svn merge ^/trunk .
--- Merging r11145 through r11342 into '.':
Udata/chianti/masterlist/CloudyChianti.ini
 G   data/lamda/masterlist/Lamda.ini
Udata/stout/c/c_3/c_3.coll
   [ snip... ]
 C   data/stout/zn/zn_19/zn_19.coll
 C   data/stout/zn/zn_19/zn_19.nrg
 C   data/stout/zn/zn_19/zn_19.tp
   [ snip... ]
 G   tsuite
 G   .
--- Recording mergeinfo for merge of r11145 through r11342 into '.':
 G   .
--- Recording mergeinfo for merge of r11145 through r11342 into 
'data/lamda/masterlist/Lamda.ini':

 G   data/lamda/masterlist/Lamda.ini
--- Recording mergeinfo for merge of r11145 through r11342 into 'source':
 G   source
--- Recording mergeinfo for merge of r11145 through r11342 into 'tsuite':
 G   tsuite
--- Recording mergeinfo for merge of r11145 through r11342 into 'tsuite/auto':
 G   tsuite/auto
--- Recording mergeinfo for merge of r11145 through r11342 into 
'tsuite/auto/chianti_all_cool.dat':

 G   tsuite/auto/chianti_all_cool.dat
--- Recording mergeinfo for merge of r11145 through r11342 into 
'tsuite/auto/chianti_all_cool.in':

 G   tsuite/auto/chianti_all_cool.in
Summary of conflicts:
  Property conflicts: 3
Conflict for property 'svn:mergeinfo' discovered on 
'data/stout/zn/zn_19/zn_19.coll'.

local delete, incoming edit upon merge
Select: (p) postpone, (mf) my version, (tf) their version,
(dc) display conflict, (e) edit property, (q) quit resolution,
(h) help:

Here I hit ^C again. So this starts promising enough, but then I am faced with a 
conflict in the svn:mer

History split after server-side mkdir/mv

2016-10-27 Thread Dario Niedermann
I have a repository I had made in a pinch, without any directory
structure, just adding files to the root.

When the time came to add some method to the madness, I created
the 3 canonical directories, then moved (server-side) all files to
'trunk/'. Now, when I issue `svn log' in my freshly checked-out
working copy, I face the following situation:

*  'trunk/' only remembers revisions since when it was created;

*  the single files within 'trunk/' remember and show their full
   history;

*  when I `cd' to the working copy's "root" ('trunk/..') I see
   everything: from 1 to HEAD, including all changes to 'trunk/'.

Now, since no history was lost, this is not a real problem. I'd just
like, for 'trunk/' (i.e.: when I'm in 'trunk/' and issue `svn log') to
see everything back to revision 1. So I guess the question is: is there
a way to tell 'trunk/' that it also "owns" the repository root history
up to its birth?

Thanks for your comments,
DN


Subversion Exception - cleanup

2016-10-27 Thread Dan Atkinson
Hi there,

Firstly, I am not subscribed to this mailing list so would appreciate being
explicitly CC'd in any responses. :-)

When I attempted to update my repository, I received the following update:

Error: The working copy database at 'D:\Work\SVN\trunk' is corrupt.
Error: Try a 'Cleanup'. If that doesn't work you need to do a fresh
checkout.

When I attempted a cleanup, I received the following message:

---
Subversion Exception!
---
Subversion encountered a serious problem.
Please take the time to report this on the Subversion mailing list
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
(you can copy the content of this dialog
to the clipboard using Ctrl-C):

In file
 
'D:\Development\SVN\Releases\TortoiseSVN-1.9.4\ext\subversion\subversion\libsvn_client\cleanup.c'
 line 227: assertion failed (svn_dirent_is_absolute(dir_abspath))
---
OK
---


---
TortoiseSVN
---
Cleanup failed to process the following paths:
D:\Work\SVN\trunk
The working copy database at 'D:\Work\SVN\trunk' is corrupt.
Try a 'Cleanup'. If that doesn't work you need to do a fresh checkout.
---
OK
---

My version information is:
TortoiseSVN 1.9.4, Build 27285 - 64 Bit , 2016/04/24 13:59:58
Subversion 1.9.4, -release
apr 1.5.2
apr-util 1.5.4
serf 1.3.8
OpenSSL 1.0.2g  1 Mar 2016
zlib 1.2.8
SQLite 3.12.1

I am running Windows 10 v1511 (OS Build 10586.601).

Our SVN server (VisualSVN Server) is running SVN 1.7.6 (r1370777)

I did try to search the archives for similar problems but received a 403
from Google when I attempted it.

If you require any further information, please let me know directly.

Kind regards, Dan Atkinson


Re: History split after server-side mkdir/mv

2016-10-27 Thread Eric Johnson


On 10/27/16 7:04 AM, Dario Niedermann wrote:

I have a repository I had made in a pinch, without any directory
structure, just adding files to the root.

When the time came to add some method to the madness, I created
the 3 canonical directories, then moved (server-side) all files to
'trunk/'. Now, when I issue `svn log' in my freshly checked-out
working copy, I face the following situation:

*  'trunk/' only remembers revisions since when it was created;


I think your example will be easier to follow if you provide more 
concrete details, such as the specific log commands you're issuing.


However, without further information, it sounds like Subversion is 
functioning as designed. Namely, that in Subversion, a folder has 
history just like a file. So if you ask for the history of trunk, you 
can only find out the history of the folder back to its birth.


*  the single files within 'trunk/' remember and show their full
history;

*  when I `cd' to the working copy's "root" ('trunk/..') I see
everything: from 1 to HEAD, including all changes to 'trunk/'.

Now, since no history was lost, this is not a real problem. I'd just
like, for 'trunk/' (i.e.: when I'm in 'trunk/' and issue `svn log') to
see everything back to revision 1. So I guess the question is: is there
a way to tell 'trunk/' that it also "owns" the repository root history
up to its birth?


I don't believe there's any good way to do what you want without 
recreating the history of your repository. You might be able to achieve 
what you want by doing an svnadmin dump & load, where you load to a 
sub-directory trunk", then relocate everything buried a level down 
(trunk/trunk/...) back into the top-level trunk folder.


Eric.



Thanks for your comments,
DN




Re: Subversion Exception - cleanup

2016-10-27 Thread Stefan
On 10/27/2016 16:36, Dan Atkinson wrote:
> Hi there,
>
> Firstly, I am not subscribed to this mailing list so would appreciate
> being explicitly CC'd in any responses. :-)
>
> When I attempted to update my repository, I received the following update:
>
> Error: The working copy database at 'D:\Work\SVN\trunk' is corrupt.  
> Error: Try a 'Cleanup'. If that doesn't work you need to do a fresh
> checkout.  
>
> When I attempted a cleanup, I received the following message:
>
> ---
> Subversion Exception!
> ---
> Subversion encountered a serious problem.
> Please take the time to report this on the Subversion mailing list
> 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
> (you can copy the content of this dialog
> to the clipboard using Ctrl-C):
>
> In file
>  
> 'D:\Development\SVN\Releases\TortoiseSVN-1.9.4\ext\subversion\subversion\libsvn_client\cleanup.c'
>  line 227: assertion failed (svn_dirent_is_absolute(dir_abspath))
> ---
> OK   
> ---
>
>
> ---
> TortoiseSVN
> ---
> Cleanup failed to process the following paths:
> D:\Work\SVN\trunk
> The working copy database at 'D:\Work\SVN\trunk' is corrupt.
> Try a 'Cleanup'. If that doesn't work you need to do a fresh checkout.
> ---
> OK   
> ---
>
> My version information is:
> TortoiseSVN 1.9.4, Build 27285 - 64 Bit , 2016/04/24 13:59:58
> Subversion 1.9.4, -release
> apr 1.5.2
> apr-util 1.5.4
> serf 1.3.8
> OpenSSL 1.0.2g  1 Mar 2016
> zlib 1.2.8
> SQLite 3.12.1
>
> I am running Windows 10 v1511 (OS Build 10586.601).
>
> Our SVN server (VisualSVN Server) is running SVN 1.7.6 (r1370777)
>
> I did try to search the archives for similar problems but received a
> 403 from Google when I attempted it.
>
> If you require any further information, please let me know directly.
>
> Kind regards, Dan Atkinson

In case of a WC DB corruption I'd say your best bet is to do a fresh
checkout and copy over locally modified files from the old working copy
to the new one.

You can also try to debug/troubleshoot the database corruption and try
to repair the database (sqlite3 -> pragma integrity_check) but unless
you have a reason to try to save your working copy, there's little point
to do so, IMO.

Although I doubt it's related to the corruption you ran into: Your
VisualSVN Server is quite outdated. I assume you are running Visual SVN
Server 2.5.6. I'd certainly suggest you to upgrade your server to 2.5.26
at least (which will bring SVN up to 1.7.21). The upgrade should be as
simple as clicking through the installer.

If possible, you'd even upgrade to a later one which will bring SVN up
to 1.8 or 1.9 (currently VisualSVN Server 3.5.6 is the recommended version).

Regards,
Stefan




smime.p7s
Description: S/MIME Cryptographic Signature