[FFmpeg-devel] ffmpegs future version control system
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
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
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