[FFmpeg-devel] ffmpegs future version control system

Michael Niedermayer michaelni
Wed May 9 02:51:34 CEST 2007


i would like to change ffmpeg from svn to git

let my first summarize the advantages and disadvantages
* all the log, blame, diff, ... available without network access

* no more need for repository backups

* smaller checkouts if no full history is needed via the git-cvs wrapper
  note, yes this includes write access according to docs

* secure connections via ssh, no more security though unlikeliness of a
  man in the middle attack or difficulty of offline bruteforcing a password

* want to know all commits which changed a line matching a regular expression
  trivial ..., limit that to a file trivial too

* annotate and file merges, see for yourself:
$cat alpha beta >gamma
$git add gamma
$git commit gamma
Created commit 4ad80475631ee27841eb3a973bddd644ae1e0aad
 1 files changed, 11 insertions(+), 0 deletions(-)
 create mode 100644 gamma

$git blame -C -C1 gamma
58e73aae alpha (Michael Niedermayer 2007-05-09 00:53:59 +0200  1) this is a
58e73aae alpha (Michael Niedermayer 2007-05-09 00:53:59 +0200  2) test
58e73aae alpha (Michael Niedermayer 2007-05-09 00:53:59 +0200  3) file
58e73aae alpha (Michael Niedermayer 2007-05-09 00:53:59 +0200  4) filled with
a4a3866c alpha (Michael Niedermayer 2007-05-09 00:54:17 +0200  5) alot
a4a3866c alpha (Michael Niedermayer 2007-05-09 00:54:17 +0200  6) of
58e73aae alpha (Michael Niedermayer 2007-05-09 00:53:59 +0200  7) boring
58e73aae alpha (Michael Niedermayer 2007-05-09 00:53:59 +0200  8) text
54264595 beta  (Michael Niedermayer 2007-05-09 00:55:22 +0200  9) hello
06632f17 beta  (Michael Niedermayer 2007-05-09 00:55:56 +0200 10) cruel
54264595 beta  (Michael Niedermayer 2007-05-09 00:55:22 +0200 11) world

(that is with git HEAD not any release)

* want to fork ffmpeg to devlop some experimental feature together with
other developers without putting the main branch at risk and then merge
it back without loosing history, trivial ...

* want to be warned about trailing whitespace and tabs during local commits
no problem you can put a pre commit check script in your local repo ...

* no more forgotten svn cp, git doesnt need it, it finds copies automatically
  though this arguably can be a disadvantage if git fails to find it

* moving things from one repo into another, well, as timestamp and author
  can be overridden during commit it shouldnt be too hard to move the whole
  history of some files ...

* iam sure there are more ...

note, i did not extensively test the above claims, so comments are welcome

* blame/annotate behave somewhat different and is slower if used with
  some options like -C -C

* all the web interfaces to git ive seen suck, nothing looks remotely
  as sane as viewvc

* are there more? probably, comments welcome

how does my plan look like:
well first we need to find a reliable, fast and free server with a very
fast network connection for ffmpeg-git
ive not yet googled to see which sourceforge/savanna like providers are
available for git so comments would be welcome here ...

it would also be great if ffmpeg-git could be hosted on mphq, roots?

next would be to setup a dummy repository with a ffmpeg svn convertion and
give all current ffmpeg developers write access so we can experiment with a
remote git repository then things like a gitlog mailinglist, the cvs
wraper for git, precommit check scripts, some web interface to git and
such must be setup

and last would be the final switch to git

iam hoping that we could get all that finished in the next 1-2 month

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I have never wished to cater to the crowd; for what I know they do not
approve, and what they approve I do not know. -- Epicurus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070509/acfda250/attachment.pgp>

More information about the ffmpeg-devel mailing list