Re: Can't get exclusive lock on NAS repo lock files after upgrading to Mac OS X High Sierra

2018-01-21 Thread Nathan Hartman
On Jan 20, 2018, at 4:03 PM, Julius Smith  wrote:
> 
> I was cruising along great with my subversion repos on my NAS and my
> working copies on Mac OS X Sierra, but after upgrading to High Sierra
> I see this whenever I try to check something in:
> 
>> svn ci -m 'update'
> svn: E45: Commit failed (details follow):
> svn: E45: Can't get exclusive lock on file
> '/Volumes/Repos/SubversionRepos/svnr/scriptssvn/db/txn-current-lock':
> Operation not supported
> 
> I have tried mounting the NAS using every filesystem format supported
> (I have a QNAP Model TS-453 Pro), and the problem persists.

Is your svn server process running on a different machine than the repo storage?

Did you try installing your svn server process on the NAS?

I am not familiar with your NAS but a quick google search brought this up:

http://blog.sebastian-martens.de/technology/install-svn-on-qnap/



RE: Exe files corrupted in SVN after import from CVS

2018-01-21 Thread Bo Berglund
On Sat, 20 Jan 2018 13:19:26 -0500, Nico Kadel-Garcia  wrote:

>I suspect you can simplify the whole situation a great deal by moving
>at least this project to its own Subversion repository. You should be
>able to to at least test and debug ideas by doing a cvs2svn of just
>that project and trying out ideas. And you can import that into a
>local working Subversion repository, rather than touching the primary
>repository at all.
>

I am leaning toward a completely different approach now concerning the PC 
(Windows) software development repository:

1) I leave the CVS server running but I confgure it as read-only.
   This makes it possible for people to export older stuff if needed.

2) I export trunk of the projects that need to be worked on from CVS 

3) I start over with an empty SVN repository and import the exported
   projects into SVN, so they are the first revision there.

This way svn will be a smaller size and the content should be OK since the 
projects are not *converted* from CVS but imported as regular normal projects.

We also use CVS (and now SVN) as a store for drawings and printed circuit board 
projects (PCB).

We are using an engineering repository for these but I found that the converted 
structure is less than optimal when using SVN because of the tags and branches 
directories. In CVS we have a subdirectory for drawing sources (DWG) and 
another for PDF versions (PDF) and also a subdirectory for the boards (PCB). 
Like this:
REPO
 |-DWG
 |-PDF
 |-PCB
 |-and a few more that do not have sub-containers

These subdirectories were treated as "projects" during conversion, which has 
led to a problem since there is now only one tags, trunk and brances dir for 
ALL of the drawings and another set for all PCB:s etc.

So when I looked at the converted repository there is a total mess in the tags 
directory because we have used tag names like Rev_A, Rev_B etc for almost all 
PCB:s and now these are merged and contains an assortment of different 
unrelated projects...
In CVS the tag was a property of any given *file* but in SVN it is on a whole 
directory, or really not even this...
It is just a copy of the directory with a different name, not a property of the 
directory...

Seems like I have to scrap the conversion also for Engineering and do something 
else, but what? Separate repositories for drawings, PDF releases and PCB:s 
maybe?

Regards,
Bo B

(PS: Had to send this as regular email since the posting I made through Gmane 
seems to have disappeared. DS)



Re: Exe files corrupted in SVN after import from CVS

2018-01-21 Thread Bo Berglund
On Sat, 20 Jan 2018 13:19:26 -0500, Nico Kadel-Garcia
 wrote:

>I suspect you can simplify the whole situation a great deal by moving
>at least this project to its own Subversion repository. You should be
>able to to at least test and debug ideas by doing a cvs2svn of just
>that project and trying out ideas. And you can import that into a
>local working Subversion repository, rather than touching the primary
>repository at all.
>

I am leaning toward a completely different approach now concerning the
PC (Windows) software development repository:

1) I leave the CVS server running but I confgure it as read-only.
   This makes it possible for people to export older stuff if needed.

2) I export trunk of the projects that need to be worked on from CVS 

3) I start over with an empty SVN repository and import the exported
   projects into SVN, so they are the first revision there.

This way svn will be a smaller size and the content should be OK since
the projects are not *converted* from CVS but imported as regular
normal projects.

We also use CVS (and now SVN) as a store for drawings and printed
circuit board projects (PCB).

We are using an engineering repository for these but I found that the
converted structure is less than optimal when using SVN because of the
tags and branches directories. In CVS we have a subdirectory for
drawing sources (DWG) and another for PDF versions (PDF) and also a
subdirectory for the boards (PCB). Like this:
REPO
 |-DWG
 |-PDF
 |-PCB
 |-and a few more that do not have sub-containers

These subdirectories were treated as "projects" during conversion,
which has led to a problem since there is now only one tags, trunk and
brances dir for ALL of the drawings and another set for all PCB:s etc.

So when I looked at the converted repository there is a total mess in
the tags directory because we have used tag names like Rev_A, Rev_B
etc for almost all PCB:s and now these are merged and contains an
assortment of different unrelated projects...
In CVS the tag was a property of any given *file* but in SVN it is on
a whole directory, or really not even this...
It is just a copy of the directory with a different name, not a
property of the directory...

Seems like I have to scrap the conversion also for Engineering and do
something else, but what? Separate repositories for drawings, PDF
releases and PCB:s maybe?


-- 
Bo Berglund
Developer in Sweden



Re: Exe files corrupted in SVN after import from CVS

2018-01-21 Thread Ryan Schmidt

On Jan 20, 2018, at 10:25, Bo Berglund wrote:

> I have found that there is a problem in our SVN repository, which was
> converted from CVS using cvs2svn 2.5.0.
> 
> It concerns two exe files which are corrupted when I check out or
> export them. The trunk files have been expanded by 905 bytes or shrunk
> by 119 bytes in the two cases. Both are in the same project. They have
> 82 and 67 commits into them respectively.

Did you or your conversion process set the svn:eol-style property on these 
files? If so, that's why they got corrupted; you mustn't set that property on 
binary files.

Re: Exe files corrupted in SVN after import from CVS

2018-01-21 Thread Bo Berglund
On Sun, 21 Jan 2018 22:23:21 -0600, Ryan Schmidt
 wrote:

>
>On Jan 20, 2018, at 10:25, Bo Berglund wrote:
>
>> I have found that there is a problem in our SVN repository, which was
>> converted from CVS using cvs2svn 2.5.0.
>> 
>> It concerns two exe files which are corrupted when I check out or
>> export them. The trunk files have been expanded by 905 bytes or shrunk
>> by 119 bytes in the two cases. Both are in the same project. They have
>> 82 and 67 commits into them respectively.
>
>Did you or your conversion process set the svn:eol-style property on 
>these files? If so, that's why they got corrupted; you mustn't set 
>that property on binary files.

Well, most of the exe files got converted without this problem, so it
could not really be a global mistake in the way file properties are
set.

This is how I configured individual conversions, the remaining options
file content stayed the same for all repos:

outdumpfile='pc-dump'
inputreponame='PC'

This is my options settings for the cvs2svn conversion regarding
properties, mostly defaults in the options file example from cvs2svn):

ctx.file_property_setters.extend([
CVSBinaryFileEOLStyleSetter(),
CVSBinaryFileDefaultMimeTypeSetter(),
DefaultEOLStyleSetter(None),
SVNBinaryFileKeywordsPropertySetter(),
KeywordsPropertySetter(config.SVN_KEYWORDS_VALUE),
ExecutablePropertySetter(),
DescriptionPropertySetter(propname='cvs:description'),
SVNKeywordHandlingPropertySetter(),
SVNEOLFixPropertySetter(),
])
ctx.revision_property_setters.extend([
])

and this is how the CVS top level directories were treated as
"projects" during conversion:

# 1)List all projects automatically
import os
cvs_repo_main_dir = '/home/bosse/CVSREPOS/' + inputreponame
projects = os.listdir(cvs_repo_main_dir)

# 2) Probably you don't want to convert CVSROOT:
projects.remove('CVSROOT')

# 3) Now loop projects and add to conversion list
for project in projects:
run_options.add_project(
cvs_repo_main_dir + '/' + project,
trunk_path=(project + '/trunk'),
branches_path=(project + '/branches'),
tags_path=(project + '/tags'),
symbol_strategy_rules=global_symbol_strategy_rules,
)

So, the options file stayed the same for all 8 CVS repositories except
regarding the definition of the repo to convert and the output dump
file name. Also I have not (yet) found any more corrupted exe files
than these two that were compiled using Borland C++Builder and had CVS
revision files with a huge size of 487Mb and 367Mb respectively.

Therefore I suspect that either the RCS file size itself caused a
problem for cvs2svn, or there is some kind of internal exe file byte
pattern in such files that triggers an action in cvs2svn which causes
the file corruption...

The Ubuntu 16.04 Server (virtual machine) on which I ran the
conversion has a RAM allotment of 2 GB, maybe this is too little when
dealing with these huge files?

Checking out these files from CVS, even very old revisions from say
2006, still works successfully.


-- 
Bo Berglund
Developer in Sweden