Johan,

I could add another use case: we are migrating our CVS repositories to 
Subversion with cvs2svn, and there was a lot of 3rd party code in CVS imported 
without vendor branches. On top of many of those imports, there are several 
years of commits.

It would be nice to have a standard tool that could fix up such imports and 
copies inside the repository. For now, I came up with an ad-hoc script that 
post-processes the result of the cvs2svn conversion. It modifies the dump file 
to insert the copyfrom information and, by comparing the checksums, determines 
whether the change is a pure copy, or copy-and-modification.

Regards,
Alexey.

On Monday, November 21, 2011 03:23:03 pm Johan Corveleyn wrote:
> Hi all,
> 
> I'm wondering if it would be feasible to (make it possible to)
> alter/add copyfrom information in an SVN repository. And if so, would
> this be a desirable feature?
> 
> It would certainly be useful (although I can't fully estimate the
> ramifications) for the following use case:
> 
> - User commits a move, but for some reason it's lacking copyfrom
> information (possible reasons are 'svn mv A B; svn mv B A' with svn <
> 1.7 [1]; or user performed a non-svn move; ...)
> 
> - Work continues, further commits are done on the moved item, ...
> 
> - After a while, someone notices the unwanted breakage of history
> ('svn log' stops at the point of breakage), and they want to repair it
> to have again a "complete" line of history.
> 
> 
> Currently, the only way I know to repair this, is:
> 
>     svn rm thefile
>     svn copy $URL/thefile@REV-BEFORE-BREAKAGE .
>     # replay all the text modifications after the breakage,
>     # and commit them one by one
>     # or alternatively: replace the text by the latest version,
>     # and commit all at once (less nice history (collapsed))
> 
> This can be a lot of work (especially if a lot of commits have gone by
> since the breakage, or if multiple files (dirs) are involved which
> each evolved differently afterwards). Not to mention that it can
> become quite ugly if commits are replayed one by one (builds failing
> in the meantime, ...).
> 
> In this case, it would be very useful if one could simply add the
> missing copyfrom information to the repository. I can think of several
> possible ways:
> - On a live repository (like editing revprops (possibly protected by a
> hook)) - With an svnadmin command
> - By dumpfile manipulation, if nothing else
> 
> 
> Thoughts, opinions, ...?

Reply via email to