[Ffmpeg-devel] SVN dump

Aurelien Jacobs aurel
Mon Apr 16 14:07:16 CEST 2007


On Mon, 16 Apr 2007 05:10:06 +0300
Uoti Urpala <uoti.urpala at pp1.inet.fi> wrote:

> On Mon, 2007-04-16 at 03:09 +0200, Michael Niedermayer wrote:
> > if you have 2 seperate repos, one mplayer, one ffmpeg and you
> > want to move a directory like libswscale with its files and full history from
> > mplayer to ffmpeg how can that be done?
> 
> That depends on what you mean by "full history". I think the definition
> is far from obvious.

Agree.

> Full development history for libswscale would contain the full
> development history of MPlayer (at least until the last revision that
> changed libswscale). I think that would be impractical.

Indeed.
That would be the easiest solution:
 - pull the whole MPlayer history in the ffmpeg repository (it will
   be a totaly separate branch)
 - in the MPlayer branch, remove anything but libswscale
 - merge both branch

But then ffmpeg repository would drag the whole MPlayer history which
is not nice.

> You could then define some changed version of past history where
> changesets are cut to only the part under libswscale/ and changes which
> thus become empty are dropped. Renames between the "inside/outside"
> would be changed to additions or deletions. I'm not sure whether any
> tool has direct support for modifying history like this but it is
> possible.
> Once you have such a modified MPlayer repository you could then make a
> normal merge (just one where the branches being merged are completely
> separate and share no files) of that "branch" to FFmpeg. The resulting
> repository would have full history for FFmpeg and modified partial
> history for libswscale (which would contain all past versions of files
> there). However if you tried to checkout any single version from before
> the merge then it would either contain no libswscale or only libswscale
> depending on which side of the merged branches that version came from.

That's IMO the way to go.
That's the same as first solution except that conversion of MPlayer SVN
repository to Mercurial would retain only the libswscale directory
(and so only the revisions which touch libswscale).

Note that both of those solutions are only practical for a one time
conversion. It's not really useable in a live conversion tracking
SVN evolution (it would require a merge for every commit to libswscale
branch...)

> A third option would be to completely rework the history to interleave
> the libswscale commits between the FFmpeg ones based on commit date (so
> many commits would have completely different parents from what they did
> in the original etc). This is basically building a new repository with
> different history.

I don't like this solution.

Aurel




More information about the ffmpeg-devel mailing list