How to "un-externalize" a file in a mirrored subversion repo?

103 views Asked by At

I'm in the process of converting a subversion based project to mercurial using the hgsubversion extension. The subversion repo has a directory with an svn:externals properties that references two files from another project. Hgsubversion can convert directory externals to sub-repos but apparently not file referencing externals. I want to move away from externals/sub-repos anyway so I thought I could flatten them out as part of a svnsync.

Since this is going to be a one-shot convert and I don't mind tweaking the subversion history, I was thinking I could "de-reference" or un-externalize the files as part of the sync process. I need the resultant mirror to contain the external files without the property 'svn:external' on the directory containing the files.

I'm thinking this could be done as a commit hook. But I can't figure how to change the commit in progress, just how to abort it. This question: SVN post-commit hook to modify externals kinda gets there but the answer is mostly advice to move away from externals (I'm already convinced).

Of course if I've made too many assumptions about the best way to migrate from svn to hg please feel free to make alternative suggestions.

0

There are 0 answers