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");
next prev 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.