git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Chuck Lever <cel@citi.umich.edu>
To: Catalin Marinas <catalin.marinas@gmail.com>
Cc: Petr Baudis <pasky@suse.cz>, Theodore Ts'o <tytso@mit.edu>,
	Joel Becker <Joel.Becker@oracle.com>,
	Junio C Hamano <junkio@cox.net>,
	mason@suse.com, git@vger.kernel.org
Subject: Re: hgmq vs. StGIT
Date: Tue, 01 Nov 2005 10:20:29 -0500	[thread overview]
Message-ID: <436787BD.9080705@citi.umich.edu> (raw)
In-Reply-To: <b0943d9e0511010123i1f9eb679w@mail.gmail.com>

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

Catalin Marinas wrote:
> On 01/11/05, Petr Baudis <pasky@suse.cz> wrote:
> 
>>Did anyone do any current detailed comparison between hg mq and StGIT?
> 
> 
> Not AFAIK. I looked a bit at mq but didn't have time to play with it.
> 
> 
>>I'm very happy with StGIT, modulo few UI gripes I'm still not getting
>>around to fix, and the fact that I cannot version my changes to patches
>>- this is one advantage of having quilt stuff tracked by GIT, I think,
>>but that feels ugly.
> 
> 
> That's not too far away. Chuck Lever has a patch (and there were some
> other discussions in the past) for tracking the history of a patch.
> Basically, there would be another commit object, not reachable from
> HEAD but only via an StGIT command, which would chain all the versions
> of a patch. You would be able to view them with gitk for example.
> 
> My main issue was whether we should store every state resulted from a
> refresh  or use a separate command (somebody suggested 'freeze') to
> mark the states that should be preserved in the history. Chuck's patch
> implements the first. The drawback is that a future 'stg prune'
> command would not be able to remove the history and some states of the
> patch might not be useful (there are times when I do a refresh only to
> pop the patch and modify a different one, without any logical meaning
> for the state of the patch).
> 
> I'm open to other suggestions as well. Otherwise, Chuck's patch should
> do the job.

if there is interest i can post what i have.  unfortunately there's some 
other stuff in front of it so i don't think it will apply directly to 
catalin's stgit without some futzing.  in lieu of that, here's a command 
synopsis:

[cel@seattle ~]$ stg revisions -h
usage: stg revisions [options] [patch-name]

Display the change history of a patch or revert a patch to a previous
commit.  By itself, the command will display all committed changes,
ordered by date, of a patch.  Each committed change is listed with a
numeric label.  The label can be used with the --patch or --diff options
to examine specific changes in detail.  The --revert option can revert
a patch to any previous version.

options:
   --commit=commit-label
                         show the commit details of the specified commit
   --diff=commit-label   show changes between the specified commit and 
the next
   --file=<file name>    show changes made to a specific file
   --patch=commit-label  show the state of patch-name at the specified 
commit
   --revert=commit-label
                         revert the patch to the specified previous commit
   -h, --help            show this help message and exit
[cel@seattle ~]$

and some usage examples:

[cel@seattle main]$ stg revisions
Previous revisions of patch "revisions-command":
   0:    Sat Oct 1 21:54:43 2005 -0400
   1:    Sat Oct 1 21:58:45 2005 -0400
   2:    Sat Oct 1 22:13:27 2005 -0400
   3:    Sat Oct 1 22:55:28 2005 -0400
   4:    Sat Oct 1 23:02:22 2005 -0400

  ... snipped ...

   86:   Mon Oct 31 14:19:25 2005 -0500
   87:   Mon Oct 31 14:22:00 2005 -0500
   88:   Mon Oct 31 14:23:40 2005 -0500
   89:   Mon Oct 31 14:24:39 2005 -0500
   90:   Mon Oct 31 14:27:34 2005 -0500
[cel@seattle main]$

an entry is added to this list automatically after every operation that 
does a "refresh".

the idea is to expose and manipulate the change history of a patch 
without having to use cumbersome sha1 hash values.

without options, "stg revisions" shows a list of changes to a patch, by 
date.  each change has a label (just a number) which you can use to 
generate diffs and such.  to wit:

    stg revisions --patch=45

would show a diff between the previous patch, and the state of the patch 
at change 45.

    stg revisions --diff=45

would show a diff between change 45 and change 44.

    stg revisions --commit=45

would show pretty-printed commit information for change 45.

    stg revisions --revert=45

would revert the patch back to the way it was in change 45.  notably, 
you don't throw away changes 46 through 90 when you do this.  a new 
change is added which changes the state of the patch to the way it was 
in change 45.  (well, that's how it's supposed to work, anyway).

i'm interested to hear what folks on the list think of the idea.

[-- Attachment #2: cel.vcf --]
[-- Type: text/x-vcard, Size: 439 bytes --]

begin:vcard
fn:Chuck Lever
n:Lever;Charles
org:Network Appliance, Incorporated;Linux NFS Client Development
adr:535 West William Street, Suite 3100;;Center for Information Technology Integration;Ann Arbor;MI;48103-4943;USA
email;internet:cel@citi.umich.edu
title:Member of Technical Staff
tel;work:+1 734 763-4415
tel;fax:+1 734 763 4434
tel;home:+1 734 668-1089
x-mozilla-html:FALSE
url:http://www.monkey.org/~cel/
version:2.1
end:vcard


  parent reply	other threads:[~2005-11-01 15:20 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-31  1:50 git versus CVS (versus bk) walt
2005-10-31  1:59 ` Martin Langhoff
2005-10-31  2:03 ` H. Peter Anvin
2005-10-31  2:35 ` Linus Torvalds
2005-10-31 10:24   ` Johannes Schindelin
2005-10-31 16:18     ` Linus Torvalds
2005-10-31 18:18       ` wa1ter
2005-10-31 19:44         ` Randal L. Schwartz
2005-10-31 23:41           ` walt
2005-11-01  0:15           ` Daniel Barkalow
2005-11-01  0:21             ` Linus Torvalds
2005-10-31 19:50       ` Joel Becker
2005-10-31 20:28         ` Martin Langhoff
2005-10-31 21:30           ` Joel Becker
2005-11-01  9:15             ` Petr Baudis
2005-11-01 16:17               ` Joel Becker
2005-11-01 17:35                 ` Petr Baudis
2005-11-07 22:56               ` Petr Baudis
2005-11-08 10:50                 ` Josef Weidendorfer
2005-11-08 12:04                   ` Petr Baudis
2005-11-01  2:17           ` Randal L. Schwartz
2005-11-01  2:23             ` Linus Torvalds
2005-11-01  2:34               ` Randal L. Schwartz
2005-11-01  2:47                 ` Linus Torvalds
2005-11-01  2:35               ` Junio C Hamano
2005-11-01 23:56           ` Horst von Brand
2005-11-02  8:54             ` Andreas Ericsson
2005-11-02  9:26               ` Junio C Hamano
2005-10-31 21:00         ` Junio C Hamano
2005-10-31 21:36           ` Joel Becker
2005-10-31 21:53             ` Linus Torvalds
2005-10-31 22:14             ` Junio C Hamano
2005-10-31 22:42               ` Joel Becker
2005-11-01  0:20                 ` Junio C Hamano
2005-11-01  0:42                   ` Joel Becker
2005-11-01  1:02                     ` Martin Langhoff
2005-11-01  1:29                       ` Joel Becker
2005-11-01  1:48                         ` Linus Torvalds
2005-11-01  9:17                         ` Petr Baudis
2005-11-01 13:25                       ` Catalin Marinas
2005-11-01  0:25                 ` Theodore Ts'o
2005-11-01  9:08                   ` hgmq vs. StGIT Petr Baudis
2005-11-01  9:23                     ` Catalin Marinas
2005-11-01 10:10                       ` Petr Baudis
2005-11-01 17:34                         ` Catalin Marinas
2005-11-01 15:20                       ` Chuck Lever [this message]
2005-11-01 15:36                         ` Chris Mason
2005-11-01 17:18                           ` Catalin Marinas
2005-11-01 18:13                             ` Chris Mason
2005-11-01 21:30                               ` Catalin Marinas
2005-11-02 15:41                                 ` Chris Mason
2005-11-05 20:23                                   ` Catalin Marinas
2005-11-09 23:32                                     ` Petr Baudis
2005-11-10  0:08                                       ` Pavel Machek
2005-11-10 16:20                                       ` Catalin Marinas
2005-11-01 14:11                     ` Chris Mason
2005-11-01 16:00                       ` Linus Torvalds
2005-11-01 17:13                         ` Catalin Marinas
2005-11-01 17:29                       ` Catalin Marinas
2005-11-01 17:59                         ` Chris Mason
2005-11-01 21:22                           ` Catalin Marinas
2005-11-01  0:31                 ` git versus CVS (versus bk) Daniel Barkalow
2005-10-31 21:35         ` Linus Torvalds
2005-10-31 13:00   ` wa1ter

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=436787BD.9080705@citi.umich.edu \
    --to=cel@citi.umich.edu \
    --cc=Joel.Becker@oracle.com \
    --cc=catalin.marinas@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=junkio@cox.net \
    --cc=mason@suse.com \
    --cc=pasky@suse.cz \
    --cc=tytso@mit.edu \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).