[FFmpeg-devel] [Ffmpeg-devel] SVN dump

Michael Niedermayer michaelni
Wed May 2 10:42:10 CEST 2007


Hi

On Wed, May 02, 2007 at 02:14:33AM +0300, Uoti Urpala wrote:
> On Tue, 2007-05-01 at 23:34 +0200, Michael Niedermayer wrote:
> > > You can't
> > > remove a "bad" part of history in an existing branch. This is similar to
> > > rebuilding a repository in svn.
> > > 
> > > Now easy "rebuilds" to create a revised version of history are more
> > > useful with git because you can have private or semiprivate branches
> > > with history containing several commits, and then rebuild the history
> > > before committing it to a more public repository. However if you modify
> > > already existing history like that in a public repository it will break
> > > all existing checkouts (basically you're removing the existing branch
> > > and replacing it with a different one with the same name).
> > 
> > hmm so git uses the branch name and will fatally fail if it gets renamed?
> > also note i did NOT remove any branch i just renamed them
> 
[...]
> 
> Basically the only operation you can do in a public repository without
> causing problems is committing new versions. If you try to remove
> existing commits or otherwise alter already established history that
> basically means saying "we'll abandon the current repository, let's
> start a new one", and everyone needs to manually change to the new
> repository. git does have several tools such as rebase for modifying
> history; however those are mainly for private repositories and uses such
> as integrating changes from one branch to another. "The official FFmpeg
> git repository" should never have changes other than normal commits and
> merges except in very special circumstances. If you have a separate
> branch for developing a new feature then that could have its history
> modified, erroneous commits removed etc before it's merged into the main
> FFmpeg repository.

i disagree of course, no public branch may be hacked it doesnt matter if
its for new features or something else


> 
> > now lets assume i dont rename master<->new_branch, then this should work
> > fine, using new_branch instead of master?
> > i cant see how this could fail, i just create a new branch (like a branch
> > for a release) i port a few good changes from one branch to the other and
> > then just continue development with the new branch ...
> 
> Well it works (or doesn't) in the same sense that it works WITH the
> rename. The new branch is a completely valid branch of its own, and you
> can do whatever you want with it. There's no problem if it was a private
> branch. However if the old branch was public then people will get
> problems and will be annoyed when you abandon it and start a new one
> instead (they could also have not-(yet-)-merged changes on top of the
> old branch etc...).

all they have to do is
git checkout -m new_branch
or?

and if this fails due to a conflict then its very very likely that the
same conflict would have happend with the old branch too ...

and anyway this is critical, if this cant be done (compared to you just
dont like it) then i will not agree to switch ffmpeg to git

let me explain a little bit why this is critically needed
think of someone misstakely commiting the whole ffmpeg reindented or
mistakely commiting a old ffmpeg version over the new
or another total messup, these things do happen, and especially if
they cannot be corrected and at the time where none of the developers
is around

simply deleting the latest revission will break checkouts it also
changes history which isnt good
simply reverting the change with a new commit will wipe out the history
as shown with annotate
a branch from the last good point (which is not long ago) will not
break anything. in svn we can do this with svn cp from a specific
revission git and mercurial lack proper copy support

with mercuraial copy from an old revission simply doesnt work

btw i have some problems with copying files with git, is the following
supposed to work?

$git blame bigtrash 
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200  1) Usage: ascii [-dxohv] [-t] [char-alias...]
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200  2)    -t = one-line output  -d = Decimal table  -o = octal table  -x = hex table
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200  3)    -h = This help screen -v = version information
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200  4) Prints all aliases of an ASCII character. Args may be chars, C \-escapes,
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200  5) English names, ^-escapes, ASCII mnemonics, or numerics in decimal/octal/hex.
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200  6) 
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200  7) Dec Hex    Dec Hex    Dec Hex  Dec Hex  Dec Hex  Dec Hex   Dec Hex   Dec Hex  
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200  8)   0 00 NUL  16 10 DLE  32 20    48 30 0  64 40 @  80 50 P   96 60 `  112 70 p
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200  9)   1 01 SOH  17 11 DC1  33 21 !  49 31 1  65 41 A  81 51 Q   97 61 a  113 71 q
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200 10)   2 02 STX  18 12 DC2  34 22 "  50 32 2  66 42 B  82 52 R   98 62 b  114 72 r
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200 11)   3 03 ETX  19 13 DC3  35 23 #  51 33 3  67 43 C  83 53 S   99 63 c  115 73 s
a04ff74d (Michael Niedermayer 2007-05-02 01:01:46 +0200 12)    4 04 EOT  20 14 DC4  36 24 $  52 34 4  68 44 D  84 54 T  100 64 d  116 74 t
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200 13)   5 05 ENQ  21 15 NAK  37 25 %  53 35 5  69 45 E  85 55 U  101 65 e  117 75 u
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200 14)   6 06 ACK  22 16 SYN  38 26 &  54 36 6  70 46 F  86 56 V  102 66 f  118 76 v
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200 15)   7 07 BEL  23 17 ETB  39 27 '  55 37 7  71 47 G  87 57 W  103 67 g  119 77 w
cbda3a6a (Michael Niedermayer 2007-05-02 01:02:36 +0200 16) I
cbda3a6a (Michael Niedermayer 2007-05-02 01:02:36 +0200 17) I
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200 18)   8 08 BS   24 18 CAN  40 28 (  56 38 8  72 48 H  88 58 X  104 68 h  120 78 x
a04ff74d (Michael Niedermayer 2007-05-02 01:01:46 +0200 19)    9 09 HT   25 19 EM   41 29 )  57 39 9  73 49 I  89 59 Y  105 69 i  121 79 y
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200 20)  10 0A LF   26 1A SUB  42 2A *  58 3A :  74 4A J  90 5A Z  106 6A j  122 7A z
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200 21)  11 0B VT   27 1B ESC  43 2B +  59 3B ;  75 4B K  91 5B [  107 6B k  123 7B {
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200 22)  12 0C FF   28 1C FS   44 2C ,  60 3C <  76 4C L  92 5C \  108 6C l  124 7C |
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200 23)  13 0D CR   29 1D GS   45 2D -  61 3D =  77 4D M  93 5D ]  109 6D m  125 7D }
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200 24)  14 0E SO   30 1E RS   46 2E .  62 3E >  78 4E N  94 5E ^  110 6E n  126 7E ~
31896c83 (Michael Niedermayer 2007-05-02 01:01:29 +0200 25)  15 0F SI   31 1F US   47 2F /  63 3F ?  79 4F O  95 5F _  111 6F o  127 7F DEL

$cp bigtrash newtrash
$git add newtrash ; git commit newtrash
Created commit 0d716febcad2aab4835b5af741687b9ae6e7c002
 1 files changed, 25 insertions(+), 0 deletions(-)
 create mode 100644 newtrash
$git blame -C -C -M -M newtrash 
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200  1) Usage: ascii [-dxohv] [-t] [char-alias...]
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200  2)    -t = one-line output  -d = Decimal table  -o = octal table  -x = hex table
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200  3)    -h = This help screen -v = version information
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200  4) Prints all aliases of an ASCII character. Args may be chars, C \-escapes,
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200  5) English names, ^-escapes, ASCII mnemonics, or numerics in decimal/octal/hex.
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200  6) 
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200  7) Dec Hex    Dec Hex    Dec Hex  Dec Hex  Dec Hex  Dec Hex   Dec Hex   Dec Hex  
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200  8)   0 00 NUL  16 10 DLE  32 20    48 30 0  64 40 @  80 50 P   96 60 `  112 70 p
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200  9)   1 01 SOH  17 11 DC1  33 21 !  49 31 1  65 41 A  81 51 Q   97 61 a  113 71 q
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 10)   2 02 STX  18 12 DC2  34 22 "  50 32 2  66 42 B  82 52 R   98 62 b  114 72 r
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 11)   3 03 ETX  19 13 DC3  35 23 #  51 33 3  67 43 C  83 53 S   99 63 c  115 73 s
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 12)    4 04 EOT  20 14 DC4  36 24 $  52 34 4  68 44 D  84 54 T  100 64 d  116 74 t
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 13)   5 05 ENQ  21 15 NAK  37 25 %  53 35 5  69 45 E  85 55 U  101 65 e  117 75 u
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 14)   6 06 ACK  22 16 SYN  38 26 &  54 36 6  70 46 F  86 56 V  102 66 f  118 76 v
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 15)   7 07 BEL  23 17 ETB  39 27 '  55 37 7  71 47 G  87 57 W  103 67 g  119 77 w
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 16) I
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 17) I
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 18)   8 08 BS   24 18 CAN  40 28 (  56 38 8  72 48 H  88 58 X  104 68 h  120 78 x
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 19)    9 09 HT   25 19 EM   41 29 )  57 39 9  73 49 I  89 59 Y  105 69 i  121 79 y
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 20)  10 0A LF   26 1A SUB  42 2A *  58 3A :  74 4A J  90 5A Z  106 6A j  122 7A z
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 21)  11 0B VT   27 1B ESC  43 2B +  59 3B ;  75 4B K  91 5B [  107 6B k  123 7B {
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 22)  12 0C FF   28 1C FS   44 2C ,  60 3C <  76 4C L  92 5C \  108 6C l  124 7C |
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 23)  13 0D CR   29 1D GS   45 2D -  61 3D =  77 4D M  93 5D ]  109 6D m  125 7D }
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 24)  14 0E SO   30 1E RS   46 2E .  62 3E >  78 4E N  94 5E ^  110 6E n  126 7E ~
0d716feb (Michael Niedermayer 2007-05-02 10:34:24 +0200 25)  15 0F SI   31 1F US   47 2F /  63 3F ?  79 4F O  95 5F _  111 6F o  127 7F DEL

as can be seen git lost the history, now this didnt always happen
it worked in some cases like:

$git blame -C -C -M -M bigtrash2
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200  1) Usage: ascii [-dxohv] [-t] [char-alias...]
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200  2)    -t = one-line output  -d = Decimal table  -o = octal table  -x = hex table
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200  3)    -h = This help screen -v = version information
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200  4) Prints all aliases of an ASCII character. Args may be chars, C \-escapes,
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200  5) English names, ^-escapes, ASCII mnemonics, or numerics in decimal/octal/hex.
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200  6) 
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200  7) Dec Hex    Dec Hex    Dec Hex  Dec Hex  Dec Hex  Dec Hex   Dec Hex   Dec Hex  
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200  8)   0 00 NUL  16 10 DLE  32 20    48 30 0  64 40 @  80 50 P   96 60 `  112 70 p
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200  9)   1 01 SOH  17 11 DC1  33 21 !  49 31 1  65 41 A  81 51 Q   97 61 a  113 71 q
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200 10)   2 02 STX  18 12 DC2  34 22 "  50 32 2  66 42 B  82 52 R   98 62 b  114 72 r
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200 11)   3 03 ETX  19 13 DC3  35 23 #  51 33 3  67 43 C  83 53 S   99 63 c  115 73 s
a04ff74d bigtrash (Michael Niedermayer 2007-05-02 01:01:46 +0200 12)    4 04 EOT  20 14 DC4  36 24 $  52 34 4  68 44 D  84 54 T  100 64 d  116 74 t
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200 13)   5 05 ENQ  21 15 NAK  37 25 %  53 35 5  69 45 E  85 55 U  101 65 e  117 75 u
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200 14)   6 06 ACK  22 16 SYN  38 26 &  54 36 6  70 46 F  86 56 V  102 66 f  118 76 v
31896c83 bigtrash (Michael Niedermayer 2007-05-02 01:01:29 +0200 15)   7 07 BEL  23 17 ETB  39 27 '  55 37 7  71 47 G  87 57 W  103 67 g  119 77 w
cbda3a6a bigtrash (Michael Niedermayer 2007-05-02 01:02:36 +0200 16) I

is this a bug, am i too stupid to use git properly or does git plain not
reliably support copying files with history?

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Observe your enemies, for they first find out your faults. -- Antisthenes
-------------- 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/20070502/6ac35cf5/attachment.pgp>



More information about the ffmpeg-devel mailing list