Re: script or tool to walk back thru 1 file's history diffing..

2011-09-09 Thread Johan Corveleyn
On Fri, Sep 9, 2011 at 2:06 AM,   wrote:
> Would like to write a script to follow the history of a single
> file, backwards, diffing the file w/it's prior version all the way
> back to the 1st version.
>
> By using 'svn info' to get the last chgd rev, and running 'svn
> diff -c $lastchgd_rev ...', this seems simple enough if the URL to
> the file does not change; but if the pathname in svn to the file
> is renamed there is no choice but to look at 'svn log', right?
>
> --
> thanks/regards,
> Tom
>
> --
> Does such a command line tool already exist?

Well, yes, such a command line tool already exists :-). At least, it
does in 1.7.0 RC2:

'svn log --diff' will produce the log with the diffs inline.

Take a look at one of the 1.7.0 pre-release binaries available here:
http://subversion.apache.org/packages.html#pre-release

-- 
Johan


Re: Anyone able to produce Solaris binaries of 1.7.0-rc2 ?

2011-09-09 Thread Johan Corveleyn
On Thu, Sep 8, 2011 at 2:13 PM, Mark Phippard  wrote:
> On Thu, Sep 8, 2011 at 7:31 AM, Johan Corveleyn  wrote:
>> On Mon, Sep 5, 2011 at 4:30 PM, Mark Phippard  wrote:
>>> On Mon, Sep 5, 2011 at 8:51 AM, Johan Corveleyn  wrote:
 Is there anyone on this list able to produce binaries of 1.7.0-rc2
 client for Solaris? I know both Collabnet and Wandisco produce Solaris
 binaries, but they haven't (yet) built the 1.7 pre-releases for this
 platform. If either of them could fire up their build infrastructure
 for this, that would be great of course :-). Or anyone else ...?

 I'm mostly interested in x86 binaries right now, but also sparc
 binaries would be useful (to compare between two of our systems).
>>>
>>> There is a Solaris x86 client here:
>>>
>>> https://ctf.open.collab.net/sf/frs/do/listReleases/projects.csvn/frs.svn_release_candidates
>>>
>>> Also, Windows 32/64 and Linux 32/64.  Only thing we do not have
>>> available yet is Solaris sparc.
>>
>> It took me a while but I finally took this package for a spin today.
>> Unfortunately, there seems to be something corrupt with the package:
>>
>> bash-3.00# pkgadd -d CSVNclnt-1.7.0.1-x86-local
>> pkgadd: ERROR: attempt to process datastream failed
>>    - bad format in datastream table-of-contents
>> pkgadd: ERROR: could not process datastream from
>> 
>>
>> Can you verify? Has anyone else tried this package (1.7.0-rc2 for Solaris 
>> x86)?
>
> I just downloaded and successfully installed the version I posted.  I
> did it from the same site just to be sure it had not become corrupted
> in posting it.
>
> Did you use gzip -d to decompress it first?

Strange. We tried several things, and still get that same error.
- We downloaded it again.
- Tried several ways of copying it to the target server (WinSCP and such)
- It gunzips correctly, there seems to be no problem there
- We also tried to extract it on Windows (Winzip or 7zip, not sure),
before copying the package to the server.

Maybe there is some strange platform difference, or difference in the
packaging system ...

'uname -a' reports:
SunOS testhost 5.10 Generic_144489-17 i86pc i386 i86pc

It's actually a virtual machine running on an ESX cluster, but I don't
think that matters.

OTOH, the release package of 1.6.17 client from CollabNet did install
successfully on this machine.

Is there anything special we need to do?

Maybe I could verify sha1 checksums of both the .gz archive and the
package after decompression, if you can provide those, to check that
nothing went wrong in transit?

Thanks,
-- 
Johan


Re: script or tool to walk back thru 1 file's history diffing..

2011-09-09 Thread Stefan Sperling
On Fri, Sep 09, 2011 at 09:44:06AM +0200, Johan Corveleyn wrote:
> On Fri, Sep 9, 2011 at 2:06 AM,   wrote:
> > Would like to write a script to follow the history of a single
> > file, backwards, diffing the file w/it's prior version all the way
> > back to the 1st version.
> >
> > By using 'svn info' to get the last chgd rev, and running 'svn
> > diff -c $lastchgd_rev ...', this seems simple enough if the URL to
> > the file does not change; but if the pathname in svn to the file
> > is renamed there is no choice but to look at 'svn log', right?
> >
> > --
> > thanks/regards,
> > Tom
> >
> > --
> > Does such a command line tool already exist?
> 
> Well, yes, such a command line tool already exists :-). At least, it
> does in 1.7.0 RC2:
> 
> 'svn log --diff' will produce the log with the diffs inline.
> 
> Take a look at one of the 1.7.0 pre-release binaries available here:
> http://subversion.apache.org/packages.html#pre-release

If you use log --diff in some automated process, be aware that some diff
options (among them --show-copies-as-adds and --no-diff-deleted) are
hard-coded and cannot be changed.

There is (at least) one diff bug which can cause surprises.
An automated process consuming log --diff output should be aware of it.
If you ask for the diff of one newly added file, you can end up getting
a diff for an entire subtree, or even the entire tree in the repository
at the given revision.
See http://subversion.tigris.org/issues/show_bug.cgi?id=2873#desc7

The intended use case for log --diff is code review by a human.


Re: Searching in SVN

2011-09-09 Thread Prabhu Gnana Sundar

On Friday 09 September 2011 12:04 PM, Waseem Shahzad wrote:


Hi guys!

I would like to search a file amongst 1000+ files 
within a Folder. Is there any way to do this with smart way.



svn ls  -R | grep 


Regards
Prabhu


RE: Searching in SVN

2011-09-09 Thread Waseem Shahzad
Thanks 

 

What we want to same in Tortoise SVN?

 

 

Muchas Gracias, 

Waseem Bukhari

CM - Ext: 331

 

From: Prabhu Gnana Sundar [mailto:prabh...@collab.net] 
Sent: Friday, September 09, 2011 7:09 AM
To: users@subversion.apache.org
Subject: Re: Searching in SVN

 

On Friday 09 September 2011 12:04 PM, Waseem Shahzad wrote: 

Hi guys!

I would like to search a file amongst 1000+ files within
a Folder. Is there any way to do this with smart way.

 

 

svn ls  -R | grep 


Regards
Prabhu



Re: How to migrate just part of a repo to another server

2011-09-09 Thread Nico Kadel-Garcia
On Thu, Sep 8, 2011 at 4:13 AM, Markus Schaber
 wrote:
> Hi, Les,
>
> Von: Les Mikesell [mailto:lesmikes...@gmail.com]
>>
>> 2011/9/7 Thorsten Schöning :
>> >
>> >> Would it work to start the dump at the revision of the move to the
>> >> current path (without --incremental) if I'm willing to lose the older
>> >> history that might have been in a cvs conversion?
>> >
>> > Is space a problem or why do you not just dump and load the whole
>> > repository and delete every path you don't need using svn? It may be
>> > the fastest solution and really preserves all history.
>>
>> There are currently a large number of projects in one repository.  The size
>> is still manageable but approaching being awkward to back up and
>> manipulate.   The point of splitting would be make the size for each
>> project reasonable - or perhaps to split out a project to be managed by a
>> group that should not have access to some of the other parts.
>> From the docs I would have expected giving a starting revision to svnadmin
>> dump to eliminate the history - and need for paths containing it - before
>> the specified point.  Is that not the case?
>
> I did not follow the thread, but did you have a look at svndumpfilter?
> http://svnbook.red-bean.com/en/1.6/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering
>
> Best regards
>
> Markus Schaber

svndumpfilter is very awkward if components have been "copied" or
"moved" from one project to another, or if revisions exist that
manipulate multiple projects. That's particularly common when a site
policy change is made to list all .c files with svn:keywords, for
example, and not done project by project.

Frankly, I've given up on doing such complex migrations. There's a
point where you lock down the old repository in read-only mode, do an
svn export and svn import into a new repository, and start with a new
repository with a new uuid and a revised layout. The commit message on
the first revision can state where the old repository is, and if
absolutely necessayr, the old repository can use svn:externals to
point to the new one. But then it's *done*, and you have a chance to
set aside years of unnecessary logs and actual binary commits into a
separate repository and start *over*.


"svn revert --depth=files"

2011-09-09 Thread Markus Schaber
Hi,

In a working copy, "svn delete" a directory which contains files.

Then do "svn revert --depth=files path/to/directory".

As far as I can remember, this did revert the directory as well as the
deleted files in SVN 1.6.

It only reverts the deleted directory in SVN 1.7, leaving the files
marked as deleted.

Best regards

Markus Schaber

___
We software Automation.

3S-Smart Software Solutions GmbH
Markus Schaber | Developer
Memminger Str. 151 | 87439 Kempten | Germany | Tel. +49-831-54031-0 |
Fax +49-831-54031-50

Email: m.scha...@3s-software.com | Web: http://www.3s-software.com 
CoDeSys internet forum: http://forum.3s-software.com
Download CoDeSys sample projects:
http://www.3s-software.com/index.shtml?sample_projects

Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner |
Trade register: Kempten HRB 6186 | Tax ID No.: DE 167014915 



Re: "svn revert --depth=files"

2011-09-09 Thread Daniel Shahaf
--depth=immediates properly reverts all children of the deleted directory.

Markus Schaber wrote on Fri, Sep 09, 2011 at 14:06:21 +0200:
> Hi,
> 
> In a working copy, "svn delete" a directory which contains files.
> 
> Then do "svn revert --depth=files path/to/directory".
> 
> As far as I can remember, this did revert the directory as well as the
> deleted files in SVN 1.6.
> 
> It only reverts the deleted directory in SVN 1.7, leaving the files
> marked as deleted.
> 
> Best regards
> 
> Markus Schaber
> 
> ___
> We software Automation.
> 
> 3S-Smart Software Solutions GmbH
> Markus Schaber | Developer
> Memminger Str. 151 | 87439 Kempten | Germany | Tel. +49-831-54031-0 |
> Fax +49-831-54031-50
> 
> Email: m.scha...@3s-software.com | Web: http://www.3s-software.com 
> CoDeSys internet forum: http://forum.3s-software.com
> Download CoDeSys sample projects:
> http://www.3s-software.com/index.shtml?sample_projects
> 
> Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner |
> Trade register: Kempten HRB 6186 | Tax ID No.: DE 167014915 
> 


AW: "svn revert --depth=files"

2011-09-09 Thread Markus Schaber
Hi, Daniel,

It even is more strange: If I do "svn revert --depth=files foo/bar foo",
then only the directory foo is reverted, and the file bar is not
restored.

Von: Daniel Shahaf [mailto:d...@daniel.shahaf.name]
> 
> --depth=immediates properly reverts all children of the deleted
directory.

But this also restores sibling directories to the file I want to
restore, right?

> Markus Schaber wrote on Fri, Sep 09, 2011 at 14:06:21 +0200:
> > Hi,
> >
> > In a working copy, "svn delete" a directory which contains files.
> >
> > Then do "svn revert --depth=files path/to/directory".
> >
> > As far as I can remember, this did revert the directory as well as
the
> > deleted files in SVN 1.6.
> >
> > It only reverts the deleted directory in SVN 1.7, leaving the files
> > marked as deleted.
> >


Best regards

Markus Schaber

___
We software Automation.

3S-Smart Software Solutions GmbH
Markus Schaber | Developer
Memminger Str. 151 | 87439 Kempten | Germany | Tel. +49-831-54031-0 |
Fax +49-831-54031-50

Email: m.scha...@3s-software.com | Web: http://www.3s-software.com 
CoDeSys internet forum: http://forum.3s-software.com
Download CoDeSys sample projects:
http://www.3s-software.com/index.shtml?sample_projects

Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner |
Trade register: Kempten HRB 6186 | Tax ID No.: DE 167014915


Re: "svn revert --depth=files"

2011-09-09 Thread Daniel Shahaf
Markus Schaber wrote on Fri, Sep 09, 2011 at 14:20:28 +0200:
> Von: Daniel Shahaf [mailto:d...@daniel.shahaf.name]
> > 
> > --depth=immediates properly reverts all children of the deleted
> > directory.
> 
> But this also restores sibling directories to the file I want to
> restore, right?

Of course; they are different things.  I was merely pointing that only
svn_depth_files but not svn_depth_immediates is broken.  


AW: "svn revert --depth=files"

2011-09-09 Thread Markus Schaber
Hi,


Von: Markus Schaber [mailto:m.scha...@3s-software.com]

> It even is more strange: If I do "svn revert --depth=files foo/bar
foo",
> then only the directory foo is reverted, and the file bar is not
restored.

This also displays no warning that foo/bar is ignored.

In addition, if I do "svn revert foo/bar", it silently does nothing.

So to revert the file and the directory, I need to do "svn revert
--depth=files foo foo/bar". AFAIR,This seems to be in contrast to the
behavior of SVN 1.6 which brought an error message because bar was about
to be reverted twice.

This change in behavior breaks my CoDeSys integration - this is not a
problem, I'm just fixing it in my code, but it may break other scripts
and tools relying on the old behavior.

Thanks,
Markus
 
> Von: Daniel Shahaf [mailto:d...@daniel.shahaf.name]
> >
> > --depth=immediates properly reverts all children of the deleted
> directory.
> 
> But this also restores sibling directories to the file I want to
restore,
> right?
> 
> > Markus Schaber wrote on Fri, Sep 09, 2011 at 14:06:21 +0200:
> > > Hi,
> > >
> > > In a working copy, "svn delete" a directory which contains files.
> > >
> > > Then do "svn revert --depth=files path/to/directory".
> > >
> > > As far as I can remember, this did revert the directory as well as
> the
> > > deleted files in SVN 1.6.
> > >
> > > It only reverts the deleted directory in SVN 1.7, leaving the
files
> > > marked as deleted.
> > >


Best regards

Markus Schaber

___
We software Automation.

3S-Smart Software Solutions GmbH
Markus Schaber | Developer
Memminger Str. 151 | 87439 Kempten | Germany | Tel. +49-831-54031-0 |
Fax +49-831-54031-50

Email: m.scha...@3s-software.com | Web: http://www.3s-software.com 
CoDeSys internet forum: http://forum.3s-software.com
Download CoDeSys sample projects:
http://www.3s-software.com/index.shtml?sample_projects

Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner |
Trade register: Kempten HRB 6186 | Tax ID No.: DE 167014915 



Re: 1.7.0 upgrade doesn't properly follow svn:externals

2011-09-09 Thread Neels J Hofmeyr
On 09/08/2011 06:21 PM, Scott Palmer wrote:
> Just tried 1.7.0RC2 and noticed that bugs with svn upgrade are still present.
> 
> If you have svn:externals in the top level of your working copy they seem to
> be converted, but if those external references also use svn:externals then
> those nested working copies are not upgraded.
> 
> Is anyone else seeing this?

Hi Scott,

thanks for the report! I can reproduce the problem with attached test
script. (The script uses my local bin/svn paths of built Subversion
versions, so I also attached a screenshot output.)

I am "moving" this discussion to the dev@ list, please reply there.

Note that the test upgrades the external dir XB, but fails to upgrade the
nested external dir XB/XC:

[[[
...
Fetching external item into 'XB/XC'
AXB/XC/c
Updated external to revision 1.
...
+ svn upgrade
Upgraded '.'
Upgraded 'B'
Upgraded 'C'
Upgraded 'XB'
Upgraded 'B/XC'
]]]

And note that a .svn dir remains in XB/XC (seen in the final 'ls')

I'll see if I can find a solution.

~Neels
#!/usr/bin/env bash

## TO MAKE THIS RUN YOUR CUSTOM COMPILED SVN, two simple options:
## 1. Adjust your PATH to point at your custom installed location:
##  export PATH="$HOME/prefix/svn_trunk/bin:$PATH"
## OR
## 2. Uncomment the four lines below to use aliases into your
##built source tree. The next line is the only line you should
##need to adjust.
# SVNDIR=/path/to/built_subversion_source_tree
# function svn() { "$SVNDIR/subversion/svn/svn" "$@"; }
# function svnserve() { "$SVNDIR/subversion/svnserve/svnserve" "$@"; }
# function svnadmin() { "$SVNDIR/subversion/svnadmin/svnadmin" "$@"; }

set -e

svn --version

# current path points at Subversion 1.7.x. Change that to 1.6.x:
OLD_PATH="$PATH"
export PATH="$HOME/pat/1.6.17/prefix/bin:$OLD_PATH"
svn --version | grep version


BASE="$(mktemp -d "/tmp/$(basename "$0").XXX")"
echo "BASE = $BASE"
REPOS="$BASE/repos"
WC="$BASE/wc"
URL="file://$REPOS"
svnadmin create "$REPOS"

# enable all revprop changes
cat > "$REPOS/hooks/pre-revprop-change" < a
mkdir B
echo b > B/b
mkdir C
echo c > C/c
svn add a B C
svn ps svn:externals "^/C XC" B
svn ps svn:externals "^/B XB" .
svn ci -mm

svn up

# back to using Subversion 1.7.x
set +x
export PATH="$OLD_PATH"
set -x
svn --version | grep version

svn upgrade

ls -a XB/XC/

## END
set +x
echo "BASE = $BASE"
svn, version 1.7.0-dev (under development)
   compiled Sep  7 2011, 21:15:48

Copyright (C) 2011 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme

svn, version 1.6.17 (r1128011)
Subversion is open source software, see http://subversion.apache.org/
BASE = /tmp/palmer.AtX
+ svn --version
+ grep version
svn, version 1.6.17 (r1128011)
Subversion is open source software, see http://subversion.apache.org/
+ svn co -q file:///tmp/palmer.AtX/repos /tmp/palmer.AtX/wc
+ cd /tmp/palmer.AtX/wc
+ echo a
+ mkdir B
+ echo b
+ mkdir C
+ echo c
+ svn add a B C
A a
A B
A B/b
A C
A C/c
+ svn ps svn:externals '^/C XC' B
property 'svn:externals' set on 'B'
+ svn ps svn:externals '^/B XB' .
property 'svn:externals' set on '.'
+ svn ci -mm
Sending.
Adding B
Adding B/b
Adding C
Adding C/c
Adding a
Transmitting file data ...
Committed revision 1.
+ svn up

Fetching external item into 'XB'
AXB/b
 U   XB

Fetching external item into 'XB/XC'
AXB/XC/c
Updated external to revision 1.

Updated to revision 1.

Fetching external item into 'B/XC'
AB/XC/c
Updated external to revision 1.

Updated to revision 1.
+ set +x
+ svn --version
+ grep version
svn, version 1.7.0-dev (under development)
Subversion is open source software, see http://subversion.apache.org/
+ svn upgrade
Upgraded '.'
Upgraded 'B'
Upgraded 'C'
Upgraded 'XB'
Upgraded 'B/XC'
+ ls -a XB/XC/
.
..
c
.svn
+ set +x
BASE = /tmp/palmer.AtX


signature.asc
Description: OpenPGP digital signature


cleaning up mergeinfo using svn 1.7

2011-09-09 Thread David Carson
We have a repository that is seriously cluttered with the svn:mergeinfo
property.  I don't believe we ever used the buggy 1.5.x versions that added
the property erroneously (although I could be wrong).  However, due to a lax
policy regarding where merges should occur, the property is now attached to
files and directories all over the place.  For example, when a user wants to
double-commit his one-file change from release 1.3 to 1.2, he merges the
change from the top-level of the 1.3 branch into the 1.2 branch and commits.
 The change in 1.2 appears as one text change and *137 property changes*!

Note that one complication is the fact that some users have mistakenly
committed only the file changes and the top-level directory prop change, but
have left the rest of the property changes uncommitted.

I was hoping that the improvements in this area that are coming in 1.7 would
allow us to continue to use this polluted repository, because even though it
would not clean up the mess, it would not continue to create merges that
look much larger than they are (due to the numerous superfluous property
changes).

To that end, I installed 1.7.0-rc2 with a snapshot of our repository, so I
could experiment and see for myself.  I did a simple merge from one branch
to another.  I was disappointed to see that the same miscellaneous group of
files and directories below the top-level are having their snv:mergeinfo
modified, even though they do not participate in the change.  I guess I am
not reading the documentation for 1.7 correctly, because I thought that this
was one of the major changes; namely, that any object which is not affected
by the merged changes would not have its svn:mergeinfo property changed.

In my test, all files and directories that *currently* have svn:mergeinfo
attached get the updated info from the merge being performed.  This means
that the backport of my one-file change looks like a much larger change.

Here are my questions:

   1. Assuming I don't clean up the repository, what help can I expect from
   1.7 in terms of new merges?  In other words, explain the behavior I should
   expect, given the state of my repository now and the test I performed above.
   2. What other methods are recommended if 1.7 will not do what I'm hoping
   for?  Are there any good cleanup scripts to help scrub the whole tree?  (I
   tried mergeinfo-sanitize, to see what it was, but it did not allow me to
   authenticate??)
   3. If I decide to simply prohibit users from making changes to
   svn:mergeinfo on any object besides the top-level directory itself, what are
   the unforeseen consequences that I need to worry about?  For *this third
   question, *I'm not so concerned about information that might be lost
   during cleanup, although I know that is a huge issue.  I'm more interested
   in the limitations this might place on us in the future, assuming we can
   clean up the tree completely so that *only* the top-level directory has
   svn:mergeinfo attached to it.  For example, if a user commits two fixes
   using a single commit on 1.3, then wants to backport one of those fixes to
   1.2, can the mergeinfo -- limited to only the top-level directory --
   maintain all the information needed?


Thanks,
David


Re: cleaning up mergeinfo using svn 1.7

2011-09-09 Thread Stefan Sperling
On Fri, Sep 09, 2011 at 12:17:15PM -0400, David Carson wrote:
> To that end, I installed 1.7.0-rc2 with a snapshot of our repository, so I
> could experiment and see for myself.  I did a simple merge from one branch
> to another.  I was disappointed to see that the same miscellaneous group of
> files and directories below the top-level are having their snv:mergeinfo
> modified, even though they do not participate in the change.  I guess I am
> not reading the documentation for 1.7 correctly, because I thought that this
> was one of the major changes; namely, that any object which is not affected
> by the merged changes would not have its svn:mergeinfo property changed.

Did the change you were merging contain svn:mergeinfo property changes?
If so, those will be applied to the working copy.

If the revision rN you are merging from 1.2 into 1.3 was itself the
result of a merge, and this merge was done with a 1.6 client,
this would explain the problem.


test email message....

2011-09-09 Thread Bob Archer
...this should be bounced, I can't seem to send to the list. I am sending this 
to get a bounce so I can forward it to IT.

Sorry if this gets to the list, if it does, please ignore.

BOb



RE: cleaning up mergeinfo using svn 1.7

2011-09-09 Thread Bob Archer
> We have a repository that is seriously cluttered with the svn:mergeinfo
> property.  I don't believe we ever used the buggy 1.5.x versions that added
> the property erroneously (although I could be wrong).  However, due to a lax
> policy regarding where merges should occur, the property is now attached to
> files and directories all over the place.  For example, when a user wants to
> double-commit his one-file change from release 1.3 to 1.2, he merges the
> change from the top-level of the 1.3 branch into the 1.2 branch and
> commits.  The change in 1.2 appears as one text change and 137 property
> changes!
> 
> Note that one complication is the fact that some users have mistakenly
> committed only the file changes and the top-level directory prop change, but
> have left the rest of the property changes uncommitted.

It is possible that if you committed those property changes the mergeinfo would 
be elided. You may want to run a record-only merge, this should elide and extra 
mergeinfo that is on the child nodes. Afaik.

BOb



> 
> I was hoping that the improvements in this area that are coming in 1.7 would
> allow us to continue to use this polluted repository, because even though it
> would not clean up the mess, it would not continue to create merges that
> look much larger than they are (due to the numerous superfluous property
> changes).
> 
> To that end, I installed 1.7.0-rc2 with a snapshot of our repository, so I 
> could
> experiment and see for myself.  I did a simple merge from one branch to
> another.  I was disappointed to see that the same miscellaneous group of
> files and directories below the top-level are having their snv:mergeinfo
> modified, even though they do not participate in the change.  I guess I am
> not reading the documentation for 1.7 correctly, because I thought that this
> was one of the major changes; namely, that any object which is not affected
> by the merged changes would not have its svn:mergeinfo property
> changed.
> 
> In my test, all files and directories that currently have svn:mergeinfo
> attached get the updated info from the merge being performed.  This means
> that the backport of my one-file change looks like a much larger change.
> 
> Here are my questions:
> 1. Assuming I don't clean up the repository, what help can I expect from 1.7
> in terms of new merges?  In other words, explain the behavior I should
> expect, given the state of my repository now and the test I performed
> above.
> 2. What other methods are recommended if 1.7 will not do what I'm hoping
> for?  Are there any good cleanup scripts to help scrub the whole tree?  (I
> tried mergeinfo-sanitize, to see what it was, but it did not allow me to
> authenticate??) 3. If I decide to simply prohibit users from making changes to
> svn:mergeinfo on any object besides the top-level directory itself, what are
> the unforeseen consequences that I need to worry about?  For this third
> question, I'm not so concerned about information that might be lost during
> cleanup, although I know that is a huge issue.  I'm more interested in the
> limitations this might place on us in the future, assuming we can clean up the
> tree completely so that only the top-level directory has svn:mergeinfo
> attached to it.  For example, if a user commits two fixes using a single 
> commit
> on 1.3, then wants to backport one of those fixes to 1.2, can the mergeinfo --
> limited to only the top-level directory -- maintain all the information 
> needed?
> 
> Thanks,
> David


Re: cleaning up mergeinfo using svn 1.7

2011-09-09 Thread David Carson
On Fri, Sep 9, 2011 at 12:38 PM, Stefan Sperling  wrote:

> On Fri, Sep 09, 2011 at 12:17:15PM -0400, David Carson wrote:
> > To that end, I installed 1.7.0-rc2 with a snapshot of our repository, so
> I
> > could experiment and see for myself.  I did a simple merge from one
> branch
> > to another.  I was disappointed to see that the same miscellaneous group
> of
> > files and directories below the top-level are having their snv:mergeinfo
> > modified, even though they do not participate in the change.  I guess I
> am
> > not reading the documentation for 1.7 correctly, because I thought that
> this
> > was one of the major changes; namely, that any object which is not
> affected
> > by the merged changes would not have its svn:mergeinfo property changed.
>
> Did the change you were merging contain svn:mergeinfo property changes?
> If so, those will be applied to the working copy.
>
> If the revision rN you are merging from 1.2 into 1.3 was itself the
> result of a merge, and this merge was done with a 1.6 client,
> this would explain the problem.
>

Bingo -- that makes sense.  In my test, I updated a child branch with new
parent content and that range of revisions contained one that was itself a
merge which was performed using svn 1.6 (i.e., before taking the snapshot of
the repository).

OK, so let's try again.  I've merged a change from another branch, which is
a commit with a single file changed.  The result is much better, but let me
verify that I understand my results:
- file a/b/c/foo.c shows the file changes -- OK
- file a/b/c/foo.c also contains svn:mergeinfo changes -- I assume this is
because it happens to be one of the many files that got contaminated with
the property prior to this test.  So, since it is part of the changeset for
my merge, the prop has to be updated too.
-  directory (call it TLD/) contains svn:mergeinfo changes -- OK
- TLD/a also contains svn:mergeinfo changes -- Same as above.  Directory
TLD/a is one of the directories which was previously contaminated, and since
this path is 'involved' in the change, the prop has to be updated.  I
wouldn't say the path really involved, except that it is the path on wich
foo.c sits.  After all, TLD/a/ is not itself changed.  Nonetheless, I can
live with this.

Now, are there any tools to aid in cleanup of the mess?  Besides the large
number of files/dirs with the prop attached, the prop itself has a large
number of paths to contend with.


Re: problems with propset svn:ignore

2011-09-09 Thread Ryan Schmidt
Please keep idscussion on the mailing list by using Reply All. My reply below:

On Sep 9, 2011, at 08:17, Randy Paries wrote:
> On Thu, Sep 8, 2011 at 10:46 PM, Ryan Schmidt wrote:
>> 
>> 
>> svn:ignore is for ignoring unversioned files that you do not want to commit 
>> to a repository.
>> 
>> If the files are already committed to the repository, then svn:ignore is not 
>> applicable.
> 
> Ryan
> thanks for the response.
> how is the best way not to override files like settings.php when i do
> an svn up to my production server?
> thanks
> Randy

Don't keep settings.php in the repository. See:

http://subversion.apache.org/faq.html#ignore-commit




Re: cleaning up mergeinfo using svn 1.7

2011-09-09 Thread Stefan Sperling
On Fri, Sep 09, 2011 at 03:00:53PM -0400, David Carson wrote:
> OK, so let's try again.  I've merged a change from another branch, which is
> a commit with a single file changed.  The result is much better, but let me
> verify that I understand my results:
> - file a/b/c/foo.c shows the file changes -- OK
> - file a/b/c/foo.c also contains svn:mergeinfo changes -- I assume this is
> because it happens to be one of the many files that got contaminated with
> the property prior to this test.  So, since it is part of the changeset for
> my merge, the prop has to be updated too.
> -  directory (call it TLD/) contains svn:mergeinfo changes -- OK
> - TLD/a also contains svn:mergeinfo changes -- Same as above.  Directory
> TLD/a is one of the directories which was previously contaminated, and since
> this path is 'involved' in the change, the prop has to be updated.  I
> wouldn't say the path really involved, except that it is the path on wich
> foo.c sits.  After all, TLD/a/ is not itself changed.  Nonetheless, I can
> live with this.

This is because it's not about which "objects" (as you called them ealier)
are affected by the merge, but which subtrees of the merge target are affected.

In your case, it looks as if the target of the merge is the working copy
root.  An affected subtree of the root is a, an affected subtree
of a is b, and so on, until you get to foo.c.

If you merge from ^/branch/a/b/c/foo.c into wc-path/a/b/c/foo.c
only foo.c should receive mergeinfo updates, because it is the
merge target and has no children.

> Now, are there any tools to aid in cleanup of the mess?  Besides the large
> number of files/dirs with the prop attached, the prop itself has a large
> number of paths to contend with.

There doesn't seem to be any officially sanctioned script.

There are various scripts people have written and posted to this list. 
One is here: http://svn.haxx.se/dev/archive-2009-05/0438.shtml
You could try the archive search on svn.haxx.se -- maybe you'll find
something useful.

However, I would say that the need for such a script implies a lack
of functionality in Subversion itself. 'svn merge' does try to elide
mergeinfo when subtree mergeinfo becomes redundant, but AFAIK the
current implementation is a bit simplistic.
It would help if you could present examples where elision does not
work for you, so we can fix 'svn merge'.

We could allow the existing elision code to be invoked without running
a merge. An option like --elide-mergeinfo could be added to the
'svn mergeinfo' command for this purpose. Would this be useful?


Re: cleaning up mergeinfo using svn 1.7

2011-09-09 Thread Stefan Sperling
On Sat, Sep 10, 2011 at 12:40:11AM +0200, Stefan Sperling wrote:
> It would help if you could present examples where elision does not
> work for you, so we can fix 'svn merge'.

The following quote from 
https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_client/mergeinfo.h
provides some background on how elision is supposed to work.

/* Elide any svn:mergeinfo set on TARGET_WCPATH to its nearest working
   copy (or possibly repository) ancestor with equivalent mergeinfo.

   If WC_ELISION_LIMIT_PATH is NULL check up to the root of the
   working copy or the nearest switched parent for an elision
   destination, if none is found check the repository, otherwise check
   as far as WC_ELISION_LIMIT_PATH within the working copy.
   TARGET_WCPATH and WC_ELISION_LIMIT_PATH, if it exists, must both be
   absolute or relative to the working directory.

   Elision occurs if:

 A) TARGET_WCPATH has empty mergeinfo and no parent path with
explicit mergeinfo can be found in either the WC or the
repository (WC_ELISION_LIMIT_PATH must be NULL for this to
occur).

 B) TARGET_WCPATH has empty mergeinfo and its nearest parent also
has empty mergeinfo.

 C) TARGET_WCPATH has the same mergeinfo as its nearest parent
when that parent's mergeinfo is adjusted for the path
difference between the two, e.g.:

   TARGET_WCPATH= A_COPY/D/H
   TARGET_WCPATH's mergeinfo= '/A/D/H:3'
   TARGET_WCPATH nearest parent = A_COPY
   Parent's mergeinfo   = '/A:3'
   Path differece   = 'D/H'
   Parent's adjusted mergeinfo  = '/A/D/H:3'

   If Elision occurs remove the svn:mergeinfo property from
   TARGET_WCPATH. */
svn_error_t *
svn_client__elide_mergeinfo(const char *target_wcpath,
const char *wc_elision_limit_path,
svn_client_ctx_t *ctx,
apr_pool_t *pool);


customizing svnserve for svn+ssh

2011-09-09 Thread Matthew Beals
I have two sets of repos setup... common repos and user repos.  On the machine 
acting as the svn host, I have the common repos stored in /repos while the user 
repos are in /home//.repos/

I'm attempting to simplify svn+ssh access such that:

svn+ssh:///Code/some_project_reposerves up 
/repos/Code/some_project_repo
svn+ssh:some_project_repo  serves up 
/home//.repos/some_project_repo

I took the example of writing a shell script in /usr/local/bin that sets the 
umask and calls svnserve and modified it to include this path tinkering.  Here 
is that script:

##
#!/bin/bash

umask 002

PATH="$@"
ROOT="/repos"
USER=`echo $PATH | /bin/sed "s/^\/\([a-z]*\)\/.*/\1/"`
PATTERN="^$USER:"

if  `/usr/bin/ypcat passwd | /bin/egrep -q $PATTERN` ; then
  ROOT="/home/$USER/.repos"
  PATTERN="s/\/$USER//"
  PATH=`echo $PATH | /bin/sed $PATTERN`
fi

exec /usr/bin/svnserve "$PATH" -r "$ROOT"
#

It just compares the first directory passed in against the users in the NIS 
domain and if it finds a match, builds a new Path and root path to the repos.  
It works just fine on the command line when I pass it paths and echo back out 
the parts, but when I attempt to actually run it (by accessing a repo with 
svn+ssh), $PATH does not get set to the path being passed in... it is just set 
to '-t'.  However, when I try to access a common repo (where PATH is left 
unadulterated), it serves up the repo just fine.  Is the path being passed 
encoded somehow?  Is there are way to access it?

thanks,
Matt


Matthew Beals
Michigan Technological University
Department of Atmospheric Sciences
1400 Townsend Drive
B019a Fisher Hall
Houghton, MI 49931
mjbe...@mtu.edu


Re: Searching in SVN

2011-09-09 Thread Ryan Schmidt
On Sep 9, 2011, at 06:16, Waseem Shahzad wrote:

> What we want to same in Tortoise SVN?

If you want to learn how to do things with TortoiseSVN, you'll have to ask in a 
TortoiseSVN support venue. This list is for the base Subversion software only 
-- the official command line program and libraries.