[FFmpeg-devel] [RFC] libswscale into the FFmpeg SVN repo

Christian Iversen chrivers
Sun Apr 5 16:35:14 CEST 2009


Michael Niedermayer wrote:
> On Sun, Apr 05, 2009 at 02:36:28AM +0200, Christian Iversen wrote:
>> Michael Niedermayer wrote:
>>> On Sat, Apr 04, 2009 at 10:55:54PM +0200, Diego Biurrun wrote:
>>>> On Sat, Apr 04, 2009 at 10:52:03PM +0200, Michael Niedermayer wrote:
>>>>> On Sat, Apr 04, 2009 at 08:44:51PM +0200, Christian Iversen wrote:
>>>>> [...]
>>>>>>>> I've never used CVS a lot - what kind of support did it have for 
>>>>>>>> moving stuff between reposes?
>>>>>>> you just copy the rcs files on the server, needs an account or someone
>>>>>>> with an account ...
>>>>>>> what was missing was that this didnt keep track of where the file 
>>>>>>> previously
>>>>>>> was ...
>>>>>> Oh, like that. Yes, that was pretty neat. It's still perfectly possible 
>>>>>> with SVN though.
>>>>> only as long as inside the same repo, cvs never had this limitation, a
>>>>> rcs file form one repo can be copied to another like just copying it 
>>>>> within a
>>>>> repo
>>>> And then that file magically appears in checkouts from dates before you
>>>> moved the file, great idea.
>>> Thats what i was speaking about, did you read it at all?
>>> What my "suggestion" was, was that each RCS file would also keep track of 
>>> the
>>> path, not just the file content so past checkouts would not contain the
>>> file in the wrong repo
>>>> Per-file revision control is not a good idea.  What you want to version
>>>> is the whole repository.
>>> thank you, but i know what i want. And the per repo version is why we cant
>>> merge swscale into ffmpeg, with per file we could
>> Well, that's not entirely true. With your system, it would be dangerous to 
>> simply move files into the new repos, because there could suddenly be a 
>> temporal overlap between the files. There could be several files with the 
>> same name at the same time, etc. Therefore, you would still need a special 
>> tool to do this.
> 
> let me repeat it again, it must be darn hard to understand a single
> sentance

Hey, wow. Surely, you not requiring me to read your mind? ;-)

> ->each RCS file would contain the file path<-
> 
> heres a example to show it:
> 
> before the merge:
> file0,v (in mplayer repo)
>     2001-1-1 rev1   cvs.mplayerhq.hu/MPLayer/libswscale/swscale.c
>                     <file content>
>     2002-1-1 rev2   cvs.mplayerhq.hu/MPLayer/libswscale/swscale.c
>                     <other file content>
> 
> file1,v (in ffmpeg repo)
>     2001-2-1 rev1   cvs.ffmpeg.org/ffmpeg/ffmpeg.c
>                     <file content>
>     2002-2-1 rev2   cvs.ffmpeg.org/ffmpeg/ffmpeg.c
>                     <other file content>
> 
> file2,v (in ffmpeg repo)
>     2001-3-1 rev1   cvs.ffmpeg.org/ffmpeg/libswscale extern cvs.mplayerhq.hu/MPLayer/libswscale
> 
> after the merge:
> 
> file0,v (in ffmpeg repo)
>     2001-1-1 rev1   cvs.mplayerhq.hu/MPLayer/libswscale/swscale.c
>                     <file content>
>     2002-1-1 rev2   cvs.mplayerhq.hu/MPLayer/libswscale/swscale.c
>                     <other file content>
>     2009-1-1 rev3   cvs.ffmpeg.org/ffmpeg/libswscale/swscale.c
>                     <other file content>
> 
> file1,v (in ffmpeg repo)
>     2001-2-1 rev1   cvs.ffmpeg.org/ffmpeg/ffmpeg.c
>                     <file content>
>     2002-2-1 rev2   cvs.ffmpeg.org/ffmpeg/ffmpeg.c
>                     <other file content>
> 
> file2,v (in ffmpeg repo)
>     2001-3-1 rev1   cvs.ffmpeg.org/ffmpeg/libswscale extern cvs.mplayerhq.hu/MPLayer/libswscale
>     2009-1-1 rev2   deleted
> 
> a file name conflict cannot happen at or after rev3 check in date because the
> move/copy would have failed due to an existing file at that place.
> and prior to rev3 / 2009-1-1 swscale.c DID NOT exist ANYWHERE in the ffmpeg
> directory structure so it cannot colide either
> 
> I hope what i suggested is clearer now

It is, thanks for the clarification.

However, it hinges on the idea (which you did not tell us about 
initially) that the file path written in the rcs file includes a form of 
repository id (in the form of a path prefix), that allows you to rename 
files into the current repos.

On the other hand, depending on the exact implementation of course, this 
could make it more difficult to simply move a repos to a new server, 
unless you want to keep the old server name in the path prefix.

-- 
Med venlig hilsen
Christian Iversen



More information about the ffmpeg-devel mailing list