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 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).