AW: copying subdirectories in subversion 1.7

2011-07-26 Thread Markus Schaber
Hi, Daniel,

Von: Daniel Shahaf [mailto:d...@daniel.shahaf.name]

 Markus Schaber wrote on Mon, Jul 25, 2011 at 15:57:00 +0200:
  Hi, Stefan,
 
  Von: Stefan Sperling [mailto:s...@elego.de]
So I'm not only detaching subdirectories, but also
re-implanting
them afterwards.
  
   Sounds like what you really need is this as-of-yet not implemented
   feature:
   http://subversion.tigris.org/issues/show_bug.cgi?id=3625
 
  Yes, that one would definitely help. :-)
 
  Maybe extending svn diff and svn patch to preserve
  copy/rename/history information would already be half of that
  implementation? A shelve subdir under .svn/ could then be used to
  store the diff files.
 
 
 That's one solution.
 
 However, wc.db already has the ability to represent multiple related
trees
 (via op_depth), so another way would be to extend that into storing
not
 only the post-'svn patch' trees too, and then merging them in the
usual
 way.  (which may require repository communication, or storing the pre-
 patch tree locally too...)

I think your suggestion sounds a little bit more complex to start with.

Shelving of patches in .svn/shelve/ can be implemented independently of
the diff/patch extension (with the disadvantage of losing history for
now), and can even be implemented as an external tool / script.

Extending the diff and patch commands to preserve history (maybe
just by a pointer to url@rev) has benefits for other uses (like sending
patches to someone else).

 Perhaps you'd be interested in contributing to the implementation of
this
 feature?

Yes, I am, but I've only very limited time to work on it while being at
home.


Best regards,

Markus Schaber



AW: copying subdirectories in subversion 1.7

2011-07-25 Thread Markus Schaber
Hi,

Von: Stefan Sperling [mailto:s...@elego.de]
   This works fine even for new directories, deleted ones, etc.
   Caveat: It cannot do copies yet -- those will show up as simple
adds.
 
  So moves and renames will lose their history?
 
 Yes. This is because the patch format cannot represent copies and
moves.
 But how often do you split out a subtree that has copied or moved
items
 within it? Can't you commit such changes from the existing working
copy
 subtree before splitting it off?

My most common (ab-)usage is to use this as a poor man's local branch
feature. I'm working on some long-term task (e. G. some large
refactoring or new feature), and get interrupted by some short fix which
has to be developed on the fast lane. Often enough, my current working
copy state is not stable enough (or does not even compile), or the fix
touches the same files, but must be backportable independently, so I
have to create that fix on a clean code base.

Now, instead of checking out a new copy of the whole working environment
(or copying the working copy, which needs a similarly long amount of
time as we talk about about 2.5 Gigabytes in 58k files in about 38k
folders), I just copy the one or two interesting subdirectories into a
safe place, and locally revert all changes. After finishing and
committing the intermediate fix, I delete the subdirectories, move my
safe copies back into place, and then do svn update.

So I'm not only detaching subdirectories, but also re-implanting
them afterwards.

With svn 1.7, this would require at least one additional step
(downgrade the working copy to the previous revision before the
re-implant) and completely lose history for copies and renames.

And especially those larger tasks are those which tend to contain copies
and renames more often, as well as they have a higher likelihood to
collide with fast-lane fixes simply due to the fact that they need a
longer time.

Best Regards,
Markus Schaber


Re: AW: copying subdirectories in subversion 1.7

2011-07-25 Thread Les Mikesell

On 7/25/11 7:49 AM, Markus Schaber wrote:


Von: Les Mikesell [mailto:lesmikes...@gmail.com]

On 7/25/11 3:22 AM, Stefan Sperling wrote:

I am not aware of any existing developer who expressed interest in
working on 'svn detach'.


Just curious: what drove the original WC design where each

subdirectory

was inherently independent?  And is this the same set of developers?


My guess is that this Design was inherited from CVS.

And AFAICS, the initial set of developers had some common members with
the CVS developers, and it changed gradually, there was no revolution
replacing all existing developers with new ones.


The tradeoffs are sort of obvious, but it seems like a very drastic change to 
make with no option to maintain the old behavior.


--
  Les Mikesell
   lesmikes...@gmail.com


AW: copying subdirectories in subversion 1.7

2011-07-25 Thread Markus Schaber
Hi, Stefan,

Von: Stefan Sperling [mailto:s...@elego.de]
  So I'm not only detaching subdirectories, but also re-implanting
  them afterwards.
 
 Sounds like what you really need is this as-of-yet not implemented
 feature:
 http://subversion.tigris.org/issues/show_bug.cgi?id=3625

Yes, that one would definitely help. :-)

Maybe extending svn diff and svn patch to preserve
copy/rename/history information would already be half of that
implementation? A shelve subdir under .svn/ could then be used to
store the diff files.

Best regards

Markus Schaber



Re: AW: copying subdirectories in subversion 1.7

2011-07-25 Thread Mark Phippard
On Mon, Jul 25, 2011 at 9:08 AM, Les Mikesell lesmikes...@gmail.com wrote:

 On 7/25/11 7:49 AM, Markus Schaber wrote:


 Von: Les Mikesell [mailto:lesmikes...@gmail.com]

 On 7/25/11 3:22 AM, Stefan Sperling wrote:

 I am not aware of any existing developer who expressed interest in
 working on 'svn detach'.


 Just curious: what drove the original WC design where each

 subdirectory

 was inherently independent?  And is this the same set of developers?


 My guess is that this Design was inherited from CVS.

 And AFAICS, the initial set of developers had some common members with
 the CVS developers, and it changed gradually, there was no revolution
 replacing all existing developers with new ones.


 The tradeoffs are sort of obvious, but it seems like a very drastic change
 to make with no option to maintain the old behavior.


In SVN 1.6 and earlier it is not like someone wrote code specifically to
allow people to copy/move folders out of their WC.  It was just something
that fell out of the design.  There are plenty of instances where people did
not want this behavior, and for them it is now fixed.  For example, in
Eclipse this has always been a huge problem.  Users would copy and paste a
folder and this would silently bring the .svn folder with it which was not
what was desired.  I mention Eclipse simply because this is one of the only
events where it does not provide a hook for plugins to get involved so the
SVN plugins for Eclipse are not able to detect and fix this situation and it
is perceived as a bug.

The opinion was that if users really want to be able to easily detach
folders from their working copy someone will step up with scripts and/or
patches to add a feature to SVN to do it.

-- 
Thanks

Mark Phippard
http://markphip.blogspot.com/


Re: AW: copying subdirectories in subversion 1.7

2011-07-25 Thread Les Mikesell

On 7/25/2011 9:24 AM, Mark Phippard wrote:



Von: Les Mikesell [mailto:lesmikes...@gmail.com
mailto:lesmikes...@gmail.com]

On 7/25/11 3:22 AM, Stefan Sperling wrote:

I am not aware of any existing developer who expressed
interest in
working on 'svn detach'.


Just curious: what drove the original WC design where each

subdirectory

was inherently independent?  And is this the same set of
developers?


My guess is that this Design was inherited from CVS.

And AFAICS, the initial set of developers had some common
members with
the CVS developers, and it changed gradually, there was no
revolution
replacing all existing developers with new ones.


The tradeoffs are sort of obvious, but it seems like a very drastic
change to make with no option to maintain the old behavior.


In SVN 1.6 and earlier it is not like someone wrote code specifically to
allow people to copy/move folders out of their WC.  It was just
something that fell out of the design.


Agreed, but it is a logical design that falls out of the way 
subdirectories work and the way people use them.



There are plenty of instances
where people did not want this behavior, and for them it is now fixed.


Agreed again.  Although the change I would have preferred would have 
been an option to not keep a pristine copy at all for the circumstances 
where it doesn't work out well.



For example, in Eclipse this has always been a huge problem.  Users
would copy and paste a folder and this would silently bring the .svn
folder with it which was not what was desired.  I mention Eclipse simply
because this is one of the only events where it does not provide a hook
for plugins to get involved so the SVN plugins for Eclipse are not able
to detect and fix this situation and it is perceived as a bug.

The opinion was that if users really want to be able to easily detach
folders from their working copy someone will step up with scripts and/or
patches to add a feature to SVN to do it.


I'm not arguing that the change is bad or shouldn't have been done, just 
that it is a very surprising change in design philosophy, and projects 
that make surprising design changes without concern for existing use 
patterns make me nervous about what other surprises may be lurking in them.


--
  Les Mikesell
   lesmikes...@gmail.com


Re: AW: copying subdirectories in subversion 1.7

2011-07-25 Thread Stefan Sperling
On Mon, Jul 25, 2011 at 09:49:13AM -0500, Les Mikesell wrote:
 I'm not arguing that the change is bad or shouldn't have been done,
 just that it is a very surprising change in design philosophy, and
 projects that make surprising design changes without concern for
 existing use patterns

And the fact that we carefully considered this case, discussed it, and
came to a conclusion, does not comfort you? That we documented known
workarounds for this uses case even though it has never been officially
supported? It's not like we are being secretive about it or didn't
care about users who use this feature.

 make me nervous about what other surprises may be lurking in them.

Any other surprises we know about are documented in the release notes.
If there are additional ones we don't know about them and they will
hopefully be found during beta testing. If you find one, let us know :)


Re: AW: copying subdirectories in subversion 1.7

2011-07-25 Thread Stefan Sperling
On Mon, Jul 25, 2011 at 10:13:43AM -0500, Les Mikesell wrote:
 On 7/25/2011 9:58 AM, Mark Phippard wrote:
 You agree but you are also missing or glossing over my point.  When you
 copied that subdirectory you were not using a feature of SVN, you used
 the OS.  SVN cannot provide an option on the OS copy command.
 
 And you seem to have missed the point that people understand and use
 OS level commands and expect them to work.  I'm sure I didn't invent
 the idea of doing that, so it has almost certainly been promoted as
 an advantage of the design on this list and in usage tutorials if
 not in official documentation.

As I've already mentioned, to the best of my knowledge, copying subdirs
to create new working copies was never recommended in official documentation.
 
 Given how closely you follow the project, I am surprised you are
 surprised.
 
 I'm not surprised that the capability is not there in the
 new/different WC format.  I'm surprised that there is no option to
 maintain currently-expected behavior in a release version.

It is wrong to expect it. It doesn't even work properly in 1.6 in
some cases (you cannot copy a locally added tree without its parent
and expect it to work as an independent working copy -- not that
such an operation would make sense).

 This release has taken over 2 years and the new WC design
 has not changed from the original proposal.  If you go back to the lists
 you will see the ramifications of this change were being discussed even
 while we were still working on SVN 1.6 and the need for an svn detach
 was raised back then.
 
 Which makes it even more surprising that it was omitted.

You cannot omit something which doesn't exist yet.

The 'svn detach' subcommand has not been added because there was no time
left to implement it in the 1.7.x release cycle. There are enough
improvements in 1.7.x that make the upgrade worthwhile regardless.


Re: AW: copying subdirectories in subversion 1.7

2011-07-25 Thread Daniel Shahaf
I think you've made your point by now.  However, 1.7 is close enough to
being released that this feature will NOT be included in it.  How do you
suggest to proceed?

Personally, I'd suggest documenting this in the 1.7 release notes and
contributing the hands to work on this for 1.8.

Les Mikesell wrote on Mon, Jul 25, 2011 at 10:13:43 -0500:
 I'm surprised