From: Julian Phillips Date: Tue, 08 Apr 2008 23:21:26 GMT Subject: Re: Is my repository broken? Message-ID: In-Reply-To: <20080408225522.GD10274@spearce.org> On Tue, 8 Apr 2008, Shawn O. Pearce wrote: > Julian Phillips wrote: >> [...] In particular I had a number of commits with an empty ident [...] > ... >> Also, shouldn't fast-import be imposing the same restrictions on what you >> are allowed to commit that the main git tools do? If not, are such >> restrictions documented so that I can apply them in my conversion script? > > Hmm, no. fast-import allows what the generalized data model permits > in the object store, its really plumbing. If you are feeding it > an input stream that creates data that isn't compliant with what > the higher level VCS porcelain wants, well, all I can say is "don't > do that". Well, the 16 parent limit is enforced in builtin-commit-tree.c, and the commit-tree command is listed as plumbingmanipulators in command-list.txt - and the #define line actually blames all the way back to Linus' original commit. So that's not really a porcelain thing ;), but ... *shrugs* > The fast-import manual specifically warns in the "merge" command > documentation that you may not want to use more than 15 merge > commands, as it can create a commit that other tools based around > git won't like. But we still let you do it. Ok, so the answer is "read the manpage" ... that's what I get for spending so long playing with fast-import that I don't read the manpage anymore (I found the syntax description in fast-import.c a more useful reference) ... ho hum. > We also still let you create a commit with duplicate parents. Well - that certainly shouldn't be happening - I remebered to check for that one. > Some tools (gitk) have had issues with that in the past, but many of > them have been fixed after a fast-import result was used with them. >> From a VCS point of view its silly to list the same ancestor twice. > But from an object model point of view, it may make sense if you > were building something else on top of the core plumbing. Would it make sense perhaps for fast-import to warn about (or even error out on) such things unless you tell it not to? Most people would probably want to know if they were creating a repository that wasn't going to play nice with git's main tool suite? (I didn't realise that I _was_ creating >16 way merges until filter-branch told me). > The same holds true for the empty ident. Ok - but I can't even find a note in the manpage for this one ... -- Julian --- I thought there was chocolate inside ... Well, why was it wrapped in foil? -- Homer Simpson Mr. Plow