git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Mansfield <david@cobite.com>
To: Linus Torvalds <torvalds@osdl.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
	Kay Sievers <kay.sievers@vrfy.org>, Petr Baudis <pasky@ucw.cz>,
	Thomas Glanzmann <sithglan@stud.uni-erlangen.de>,
	Git Mailing List <git@vger.kernel.org>
Subject: Re: gitweb wishlist
Date: Mon, 23 May 2005 23:33:30 -0400	[thread overview]
Message-ID: <4292A08A.5050108@cobite.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0505201702170.2206@ppc970.osdl.org>

[-- Attachment #1: Type: text/plain, Size: 4239 bytes --]

Hi Linus,

Linus Torvalds wrote:
> [ Thomas added to cc, since he seems to have also worked on this ]
> 
> On Fri, 20 May 2005, H. Peter Anvin wrote:
> 
>>Here is my "main" OSS CVS repository; look at the syslinux module.  It 
>>has at least some minor branching.
> 
> 
> Ok, "cvsps" output scares me. I wonder what
> 
> 	WARNING: Invalid PatchSet 775, Tag syslinux-2_12-pre7:
> 	    memdisk/init32.asm:1.3=after, memdisk/Makefile:1.26=before. Treated as 'before'
> 	WARNING: Invalid PatchSet 775, Tag syslinux-2_12-pre7:
> 	    memdisk/init32.asm:1.3=after, memdisk/e820test.c:1.7=before. Treated as 'before'
> 	...
> 
> means..
> 

Ok.  I'll tell you.  It means that the committer uses bad practices in 
tagging ;-)  It generally means that force tag (cvs tag -F <file>) was 
used on a specific file.  Here's the scenario:

cvsps is trying to associate a tag to a specific commit.  But in the cvs 
world this is not always at all possible.  If, for example, a commit 
made and  all files are tagged.  Now some random file is modified and 
committed.  Then, a bug is found in a file from the previously tagged 
set, say the file 'memdisk/init32.asm'.  The bug is fixed, committed and 
the tag is MOVED for _just that file_ forward to the new version.  Now 
there is no commit that can be associated with the tag.  In this case, 
cvsps believes this to be a 'FUNKY' tag.  There is a more pathological 
case having to do with 'INVALID' tags...  It's enough to make a grown 
man cry.

> Also, your syslinux repo is interesting and shows another thing: doing a
> 
> 	cvsps -g -p separate
> 
> ends badly with
> 
> 	Directing PatchSet 938 to file separate/938.patch
> 	cvs rdiff: failed to read diff file header /tmp/cvso8PswZ for mdiskchk.com,v: end of file
> 	system command returned non-zero exit status: 1: aborting
> 
> which doesn't look very promising and causes an empty diff for
> mdiskck.com. Trying with --cvs-direct shows the reason:
> 
> 	Index: syslinux/sample/mdiskchk.com
> 	===================================================================
> 	RCS file: 
> 	/home/torvalds/src/osscvs/cvsroot/syslinux/sample/mdiskchk.com,v
> 	retrieving revision 1.1
> 	retrieving revision 1.2
> 	diff -u -r1.1 -r1.2
> 	Binary files /tmp/cvsU6MGU0 and /tmp/cvsiskFVR differ
> 
> which shows that anything that bases itself of diffs (ie uses "-g" with
> cvsps) is just doomed to failure, since there's no good way to handle
> binary data. Both Kay's and Thomas' scripts try to do the "-g" thing, 
> that's just not right.
> 

I accept patches ;-)  Honestly, handling binary data should be trivial I 
just haven't had the interest, and surprisingly noone else on the 
internet ever has.  The only binary file in the kernel appears to be the 
logo.gif, according to Ingo.

[ discussion on working around broken handling of binary files in cvsps]
> 
> There seems to be two questions:
> 
>  - what to do about branch creation (ie a branch name we haven't seen
>    before): it looks like cvsps doesn't tell you what the _originating_
>    branch was for a new branch (that may be my confusion - maybe you can't
>    create branches off branches in CVS?)
> 
>    For syslinux, it looks like you can always base it on HEAD, or possibly 
>    just the previous patch (which looks like it is always HEAD). The above 
>    pseudo-script will actually do that automatically, simply by virtue of
>    the "git-read-tree -m" at the top of the loop failing when the
>    branchname doesn't exist yet.
> 

See attached patch to cvsps.c which displays 'Ancestor branch' when this 
differs from Branch.

>  - whether to bother to create merge entries for when somebody tried to 
>    merge a branch back or forth in CVS. 
> 
>    CVS fundamentally doesn't have the notion of such a thing, and cvsps 
>    can't either. But we could try to guess, based on the commit message, 
>    perhaps.
> 
>    NOTE! Such a "merge" would not have any real GIT merge functionality 
>    what-so-ever. It would just introduce a second parent into the commit, 
>    nothing more.
> 
> Bah. What crud.
> 

Hey, a polished turd is only so shiny...  cvsps is a 99% solution [to 
the problem of extracting metatdata from cvs] only and cvs makes the 
other 1% impossible.

David

[-- Attachment #2: show-ancestor-branch.patch --]
[-- Type: text/x-patch, Size: 752 bytes --]

--- cvsps.c~	2003-04-11 10:06:01.000000000 -0400
+++ cvsps.c	2005-05-23 23:26:12.110231536 -0400
@@ -1402,6 +1402,16 @@
 	   tm->tm_hour, tm->tm_min, tm->tm_sec);
     printf("Author: %s\n", ps->author);
     printf("Branch: %s\n", ps->branch);
+    
+    /* check if ancestor was different branch */
+    if (!list_empty(&ps->members)) 
+    {
+	    PatchSetMember * psm = list_entry(ps->members.next, PatchSetMember, link);
+	    const char * abr = psm->pre_rev ? psm->pre_rev->branch : NULL;
+	    if (abr && strcmp(ps->branch, abr) != 0)
+		    printf("Ancestor branch: %s\n", abr);
+    }
+
     printf("Tag: %s %s\n", ps->tag ? ps->tag : "(none)", tag_flag_descr[ps->tag_flags]);
     printf("Log:\n%s\n", ps->descr);
     printf("Members: \n");

  parent reply	other threads:[~2005-05-24  3:33 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-11  1:26 gitweb wishlist Petr Baudis
2005-05-11  1:49 ` YOSHIFUJI Hideaki / 吉藤英明
2005-05-11  2:04   ` Petr Baudis
2005-05-11  8:47 ` Kay Sievers
2005-05-11  9:30 ` Jan-Benedict Glaw
2005-05-14  2:39   ` Kay Sievers
2005-05-12 20:07 ` Junio C Hamano
2005-05-12 21:00   ` Kay Sievers
2005-05-12 21:18     ` Junio C Hamano
2005-06-04  8:29     ` Junio C Hamano
2005-05-13 12:06 ` Jonas Fonseca
2005-05-14  2:34   ` Kay Sievers
2005-05-14  2:43 ` Kay Sievers
2005-05-14 10:54   ` Jonas Fonseca
2005-05-18  2:55 ` Kay Sievers
2005-05-18  9:45   ` Petr Baudis
2005-05-20 16:54   ` Linus Torvalds
2005-05-20 17:04     ` Junio C Hamano
2005-05-20 17:21       ` Linus Torvalds
2005-05-20 17:58     ` Kay Sievers
2005-05-20 18:16       ` Linus Torvalds
2005-05-20 18:28         ` Linus Torvalds
2005-05-20 19:00           ` Kay Sievers
2005-05-20 19:13             ` Thomas Glanzmann
2005-05-20 19:13             ` Linus Torvalds
2005-05-20 19:22             ` Linus Torvalds
2005-05-20 20:34               ` H. Peter Anvin
2005-05-20 20:49                 ` Linus Torvalds
2005-05-20 20:50                   ` H. Peter Anvin
2005-05-20 21:16                     ` Thomas Glanzmann
2005-05-20 22:04                     ` Kay Sievers
2005-05-20 22:13                       ` H. Peter Anvin
2005-05-20 23:25                       ` Linus Torvalds
     [not found]                         ` <428E745C.30304@zytor.com>
2005-05-21  0:50                           ` Linus Torvalds
2005-05-21  7:35                             ` cvs->git (was Re: gitweb wishlist) Matthias Urlichs
2005-05-24  3:33                             ` David Mansfield [this message]
2005-05-24  3:39                               ` gitweb wishlist H. Peter Anvin
2005-05-24  4:28                                 ` David Mansfield
2005-05-24  5:04                                   ` H. Peter Anvin
2005-05-24  3:52                               ` Linus Torvalds
2005-05-24  8:25                                 ` Linus Torvalds
2005-05-24 16:00                                   ` Linus Torvalds
2005-05-24 16:16                                     ` Linus Torvalds
2005-05-24 19:54                                       ` David Mansfield
2005-05-24 20:03                                       ` David Mansfield
2005-05-24 20:10                                         ` David Mansfield
2005-05-24 17:08                                     ` David Mansfield
2005-05-24 17:28                                       ` Linus Torvalds
2005-05-24 18:29                                         ` H. Peter Anvin
2005-05-24 16:15                                   ` David Mansfield
2005-05-24 16:17                                   ` Thomas Glanzmann
2005-05-24 16:31                                     ` Linus Torvalds
2005-05-24 16:53                                       ` Linus Torvalds
2005-05-24 17:23                                         ` Linus Torvalds
2005-05-24 18:46                                           ` Thomas Glanzmann
2005-05-24 19:34                                             ` Linus Torvalds
2005-05-24 22:39                                               ` Edgar Toernig
2005-05-24 23:05                                                 ` Linus Torvalds
2005-05-25  0:06                                                   ` Junio C Hamano
2005-05-25  0:17                                                     ` Linus Torvalds
2005-05-25  0:30                                                       ` Junio C Hamano
2005-05-24 19:43                                             ` David Mansfield
2005-05-24 20:16                                               ` Thomas Glanzmann
2005-05-24 19:47                                             ` Linus Torvalds
2005-05-24 20:09                                               ` Linus Torvalds
2005-05-24 20:19                                                 ` David Mansfield
2005-05-24 20:44                                                   ` Linus Torvalds
2005-05-24 20:28                                                 ` Thomas Glanzmann
2005-05-24 20:47                                                   ` Linus Torvalds
2005-05-24 21:52                                                     ` Thomas Glanzmann
2005-05-24 22:11                                                       ` Linus Torvalds
2005-05-24 22:25                                                         ` David Mansfield
2005-05-24 21:13                                                   ` Linus Torvalds
2005-05-24 21:14                                                     ` H. Peter Anvin
2005-05-24 21:41                                                       ` Thomas Glanzmann
2005-05-24 21:30                                                     ` Thomas Glanzmann
2005-05-24 21:31                                                     ` Kay Sievers
2005-05-24 21:43                                                       ` Linus Torvalds
2005-05-25  2:23                                                       ` Junio C Hamano
2005-05-25  4:55                                                         ` Linus Torvalds
2005-05-25  5:09                                                           ` Junio C Hamano
2005-05-25  9:48                                                         ` Kay Sievers
2005-05-25 10:54                                                           ` David Greaves
2005-05-25 19:16                                                             ` Junio C Hamano
2005-05-25 20:14                                                               ` David Greaves
2005-05-25 12:35                                                         ` Kay Sievers
2005-05-25 12:51                                                           ` Kay Sievers
2005-05-25 19:01                                                             ` Junio C Hamano
2005-05-25 19:01                                                           ` Junio C Hamano
2005-05-24 20:33                                                 ` Linus Torvalds
2005-05-24 18:29                                         ` Thomas Glanzmann
2005-05-24 18:52                                           ` Linus Torvalds
2005-05-24 19:16                                             ` Thomas Glanzmann
2005-05-24 19:24                                             ` Junio C Hamano
2005-05-24 19:44                                               ` Junio C Hamano
2005-05-24 20:19                               ` Martin Langhoff
2005-05-24  4:58                             ` Thomas Glanzmann
2005-05-26  2:51                               ` David Mansfield
2005-05-20 21:41               ` Kay Sievers
2005-05-20 18:58         ` Kay Sievers
2005-05-21  7:29       ` Matthias Urlichs
2005-05-21 17:14         ` Kay Sievers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4292A08A.5050108@cobite.com \
    --to=david@cobite.com \
    --cc=git@vger.kernel.org \
    --cc=hpa@zytor.com \
    --cc=kay.sievers@vrfy.org \
    --cc=pasky@ucw.cz \
    --cc=sithglan@stud.uni-erlangen.de \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).