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, ...?