[FFmpeg-devel] ffmpegs future version control system

Linus Torvalds torvalds
Thu May 10 23:31:28 CEST 2007

On Thu, 10 May 2007, Guillaume POIRIER wrote:
> What's supposed to happen if I "git commit
> libavcodec/ppc/h264_altivec.c" on a modified file (which I just did a
> few minutes ago)?
> Is it supposed to commit my changes to my local copy, (so that I can
> make incremental changes to the code I have in my local copy), or is
> it supposed to propagate these changes to mplayerhq's git/svn
> repository?

A "git commit" is always a _purely_ local event. The way to get things 
upstreams is to:

 - either do a "git push" to a central git repository that you have write 
   access to (and in order to do this, it must be a "fast forward", ie not 
   dropping any existing state on the floor, which means that you may 
   first need to have done a "git pull" from that repository to merge in 
   anybody *elses* work!)

 - convince other people (usually higher-level maintainers) to "git pull" 
   from your tree (or more often a copy of your tree that you maintain at 
   some public place - that's how the kernel people tend to do it, where 
   everybody really does development on purely private trees that are not 
   visible to anybody else)

> The documentation I read about git seems to indicate that it's
> supposed to update mplayerhq's repository, but gitweb doesn't agree
> with that.

That documentation would be misleading. Or more likely it's not actively 
misleading, but just a matter of different expectations of what "commit" 
does - the documentation probably didn't really say that a commit would 
update anything upstream, but people may be so *used* to it doing so that 
you just made that connection even when it wasn't really there.

> Mmmmm.... git does seem to be a much different animal than SVN and CVS....

Absolutely. A much better animal, but the de-centralized thing means that 
the flow of information is fundamentally different. If you've never used a 
decentralized SCM before (and most people haven't), it takes some getting 
used to.

But trust me, it's all good. Once you go decentralized, you will *refuse* 
to ever go back. I guarantee it. Having the full history and the power to 
make experimental changes and commit them without having to worry about 
messing anybody else up is a really liberating experience.


More information about the ffmpeg-devel mailing list