All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josh Triplett <josh@joshtriplett.org>
To: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: James Bottomley <James.Bottomley@hansenpartnership.com>,
	"ksummit-discuss@lists.linuxfoundation.org"
	<ksummit-discuss@lists.linuxfoundation.org>,
	Trond Myklebust <trondmy@primarydata.com>
Subject: Re: [Ksummit-discuss] [CORE TOPIC] kernel unit testing
Date: Thu, 21 Jul 2016 00:44:53 -0700	[thread overview]
Message-ID: <20160721074453.GA11126@x> (raw)
In-Reply-To: <CAKMK7uGPWusxsCRt9yELDrVd1v+rNsH3UWeTZdVBOZv+zw=iYA@mail.gmail.com>

On Thu, Jul 21, 2016 at 09:13:37AM +0200, Daniel Vetter wrote:
> Random tool plug: I stitched together a quilt+git thing, which through
> hidden git refs makes sure that the underlying git baseline also gets
> pushed around together with the quilt patches. Allows awesome stuff
> like bisecting changes in the quilt pile over rebases:
> 
> https://cgit.freedesktop.org/drm-intel/tree/qf?h=maintainer-tools
> 
> We use that to maintain the internal drm/i915 patches. Unfortunatel
> everyone else uses plain git, since I fully agree with Greg: Quilt (or
> some other pile-of-patches tool) is the only way to sanely manage
> kernel trees which aren't directly upstream.

I just released a tool I've been working on to address that problem:
https://github.com/git-series/git-series

I plan to announce it on LKML and various other places at some point,
but since the topic came up and people are looking at workflows, it
seemed worth mentioning here.

git-series handles the "history of a patch series" problem, tracking
both the patches themselves and the history of the patch series in git.
It also tracks the baseline, and the cover letter.  And even when the
patch series goes through non-fast-forwarding changes like rebase -i or
rebasing onto a new baseline, git-series tracks that with refs that
themselves fast-forward and can be pushed and fetched with normal git
tools.

I wrote it after the Nth time of running into this problem and talking
to other people who ran into this problem.  Usually, you either have to
pull the patch series out of git into quilt to version it, or or you
keep the patches in git and version by branch names (which rapidly
start looking like filenames from a corporate email system).

Here's the manpage:

NAME
       git-series - track changes to a patch series with git

SYNOPSIS
       git series [SUBCOMMAND] [OPTIONS]

DESCRIPTION
       git  series  tracks  changes  to a patch series over time.  git
       series also tracks a cover letter for the patch series, formats
       the series for email, and prepares pull requests.

       Use git series start seriesname to start a patch series series‐
       name.  Use normal git commands to commit changes, and  use  git
       series  status to check what has changed.  Use git series cover
       to add or edit a cover letter.  Use  git  series  add  and  git
       series  commit  (or  git series commit -a) to commit changes to
       the patch series.  Use git series rebase -i to help  rework  or
       reorganize  the patch series.  Use git series format to prepare
       the patch series to send via email, or git series req  to  pre‐
       pare a "please pull" mail.

       Running  git  series  without arguments shows the list of patch
       series, marking the current patch series with a '*'.

SUBCOMMANDS
       git series add change...
              Add changes to the staging area for the next git  series
              commit.

              change...
                     Changes  to  add:  any  combination  of "series",
                     "base", and "cover".

       git series base [-d|--delete] [base]
              Get or set the base commit for the patch  series.   With
              no  parameters, print the hash of the base commit.  With
              parameters, set or delete the base commit.

              This only changes the base in the working version of the
              patch series; use git series add base to add that change
              to the next git series commit, or use git series  commit
              -a  to  commit the new base and all other changes to the
              series in one step.

              base   New base commit.  This can use a commit hash, ref
                     name,  or  special  syntaxes  such as refname^ or
                     refname~2.

              -d|--delete
                     Delete the current base commit.

       git series checkout name
              Resume work on the patch series name; check out the cur‐
              rent version as HEAD.

       git series commit [-a|--all] [-m message] [-v|--verbose]
              Record a new version of the patch series.  Without argu‐
              ments, this will run an editor to edit a commit message,
              and  then  commit  the changes previously added with git
              series add.

              -a|--all
                     Commit all changes, not just those added with git
                     series add.

              -m message
                     Use  message  as  the commit message, rather than
                     running an editor.

              -v|--verbose
                     Show a diff of the commit in  the  editor,  below
                     the  commit message, as a reminder of the changes
                     in the commit.  This diff will not appear in  the
                     commit message.

       git series cover [-d|--delete]
              Create  or  edit  the cover letter for the patch series.
              Without arguments, this will run an editor to  edit  the
              cover letter.

              This  only  changes the cover letter in the working ver‐
              sion of the patch series; use git series  add  cover  to
              add  that  change  to the next git series commit, or use
              git series commit -a to commit the new cover letter  and
              all other changes to the series in one step.

              -d|--delete
                     Delete the cover letter rather than editing it.

       git series delete name
              Delete  the series name, including any work in progress,
              staged or unstaged.

       git series detach
              Stop working  on  any  patch  series.   Any  changes  in
              progress,  staged  or  unstaged, will remain intact.  To
              start working on the branch again, use git series check‐
              out.

       git series format [--in-reply-to=Message-Id] [--stdout]
              Prepare  the  patch series to send via email.  This cre‐
              ates one file per patch in the series,  plus  one  addi‐
              tional  file  for  the  cover  letter if any.  The patch
              series must have a base set with  git  series  base,  to
              identify the series of patches to format.

              Each  file  contains  one email in mbox format, ready to
              send, with  email  headers  threading  all  the  patches
              together.   If the series has a cover letter, all of the
              patches will include headers to make them a reply to the
              cover letter; otherwise, all of the patches will include
              headers to make them a reply to the first patch.

              --in-reply-to=Message-Id
                     Make the first mail a reply to the specified Mes‐
                     sage-Id.   The Message-Id may include or omit the
                     surrounding angle brackets; git-series  will  add
                     them if not present.

              --stdout
                     Write  the  entire  patch series to stdout rather
                     than to separate patch files.

       git series help [subcommand]
              Show help for git series or a subcommand.  Without argu‐
              ments,  shows  a summary of the subcommands supported by
              git series.

              subcommand
                     Show help for subcommand.

       git series log [-p|--patch]
              Show the history of the patch series.

              -p|--patch
                     Include a patch for each change committed to  the
                     series.

       git series rebase [-i|--interactive] [onto]
              Rebase  the patch series, either onto a new base, inter‐
              actively, or both.  The patch series must  have  a  base
              set  with  git  series  base,  to identify the series of
              patches to rebase.

              onto   Commit to rebase the series onto.  This can use a
                     commit  hash,  ref name, or special syntaxes such
                     as refname^ or refname~2.

              -i|--interactive
                     Interactively edit the  list  of  commits.   This
                     uses the same format and syntax as git rebase -i,
                     to  allow  reordering,  dropping,  combining,  or
                     editing commits.

       git series req [-p|--patch] url tag
              Generate a mail requesting a pull of the patch series.

              Before  running  this  command, push the patch series to
              the repository at url, as a tag or branch named tag.

              A pull request  for  a  signed  or  annotated  tag  will
              include the message from the tag.  The pull request will
              also include the cover letter if  any,  unless  the  tag
              message  already contains the cover letter.  The subject
              of the mail will include the first line from  the  cover
              letter, or the name of the series if no cover letter.

              The  patch  series  must have a base set with git series
              base, to identify the series of  patches  to  request  a
              pull of.

              url    URL of the repository to pull from.

              tag    Name of a tag or branch to request a pull from.

              -p|--patch
                     Include  a patch showing the combined change made
                     by all the patches in the series.  This can  help
                     a reviewer see the effect of pulling the series.

       git series start name
              Start a new patch series named name.

       git series status
              Show the status of the current patch series.

              This  shows  any  changes staged for the next git series
              commit, changes in the  current  working  copy  but  not
              staged  for  the next git series commit, and hints about
              the next commands to run.

       git series unadd change
              Remove changes from the next git series commit,  undoing
              git series add.

              The changes remain in the current working version of the
              series.

              change...
                     Changes to remove: any combination  of  "series",
                     "base", and "cover".

  reply	other threads:[~2016-07-21  7:45 UTC|newest]

Thread overview: 244+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-08 22:35 [Ksummit-discuss] [CORE TOPIC] stable workflow Jiri Kosina
2016-07-08 23:12 ` Guenter Roeck
2016-07-08 23:38   ` Luck, Tony
2016-07-09  8:34     ` Jiri Kosina
2016-07-09  8:58       ` Guenter Roeck
2016-07-09  9:29       ` Johannes Berg
2016-07-09 15:19         ` Jason Cooper
2016-07-09 16:04           ` Guenter Roeck
2016-07-09 19:15         ` Vlastimil Babka
2016-08-01  9:32           ` Johannes Berg
2016-08-01 11:10             ` Vlastimil Babka
2016-07-09 18:39       ` Andrew Lunn
2016-07-10  1:22       ` Rafael J. Wysocki
2016-07-08 23:52   ` Rafael J. Wysocki
2016-07-09  0:06     ` Dmitry Torokhov
2016-07-09  8:37       ` Jiri Kosina
2016-07-09  9:12         ` Mark Brown
2016-07-09  0:10   ` Dmitry Torokhov
2016-07-09  0:37     ` Rafael J. Wysocki
2016-07-09  0:43       ` Dmitry Torokhov
2016-07-09  1:53         ` Guenter Roeck
2016-07-09 10:05         ` James Bottomley
2016-07-09 15:49           ` Trond Myklebust
2016-07-09 22:41             ` Dan Williams
2016-07-10  1:34             ` James Bottomley
2016-07-10  1:43               ` Trond Myklebust
2016-07-10  1:56                 ` James Bottomley
2016-07-10  2:12                   ` Trond Myklebust
2016-07-10  2:15                   ` Rafael J. Wysocki
2016-07-10  3:00                     ` James Bottomley
2016-07-10  3:07                       ` Trond Myklebust
2016-07-26 13:35                       ` David Woodhouse
2016-07-26 13:44                         ` Guenter Roeck
2016-07-26 14:33                           ` David Woodhouse
2016-07-26 15:52                             ` Guenter Roeck
2016-07-28 21:02                             ` Laurent Pinchart
2016-07-29  0:10                               ` Steven Rostedt
2016-07-29  8:59                                 ` Laurent Pinchart
2016-07-29 14:28                                   ` Steven Rostedt
2016-08-01 13:53                                     ` Shuah Khan
2016-08-03  4:47                                       ` Bird, Timothy
2016-07-29 15:12                                   ` Mark Brown
2016-07-29 15:20                                     ` Steven Rostedt
2016-07-29 15:50                                       ` Mark Brown
2016-07-29 16:06                                         ` Steven Rostedt
2016-07-29 16:48                                           ` Mark Brown
2016-07-29 17:02                                             ` Steven Rostedt
2016-07-29 21:07                                               ` Alexandre Belloni
2016-07-29 21:40                                                 ` Steven Rostedt
2016-08-01 13:41                                                   ` Laurent Pinchart
2016-07-30 16:19                                               ` Luis R. Rodriguez
2016-08-01 13:35                                     ` Laurent Pinchart
2016-08-01 14:24                                       ` Mark Brown
2016-08-02 14:12                       ` Jani Nikula
2016-08-02 15:34                         ` Mark Brown
2016-08-02 23:17                           ` Rafael J. Wysocki
2016-08-03  9:36                             ` Jani Nikula
2016-08-03 11:09                               ` Greg KH
2016-08-03 13:05                                 ` Jani Nikula
2016-08-03 13:26                                   ` Greg KH
2016-08-03 13:48                                     ` Jiri Kosina
2016-08-03 13:57                                       ` James Bottomley
2016-08-03 13:59                                         ` Jiri Kosina
2016-08-03 14:04                                           ` James Bottomley
2016-08-03 14:10                                             ` Jiri Kosina
2016-08-04  1:23                                             ` Steven Rostedt
2016-08-04  8:20                                               ` Greg KH
2016-08-04 13:33                                                 ` Steven Rostedt
2016-08-04 15:32                                                   ` Takashi Iwai
2016-08-04 15:40                                                     ` Steven Rostedt
2016-08-04 15:47                                                     ` Jiri Kosina
2016-08-04 16:18                                                       ` Takashi Iwai
2016-08-04 16:26                                                         ` Steven Rostedt
2016-08-04 15:44                                                   ` Mark Brown
2016-08-04 15:56                                                     ` James Bottomley
2016-08-04 17:01                                                       ` Mark Brown
2016-08-04 17:11                                                         ` Steven Rostedt
2016-08-04 17:53                                                           ` Mark Brown
2016-08-05  8:16                                                           ` Jani Nikula
2016-08-04 16:14                                                     ` Steven Rostedt
2016-08-04 17:51                                                       ` Mark Brown
2016-08-04 18:16                                                       ` Geert Uytterhoeven
2016-08-04 18:44                                                         ` Steven Rostedt
2016-08-04 18:48                                                           ` Geert Uytterhoeven
2016-08-04 19:06                                                             ` Mark Brown
2016-08-04 18:52                                                           ` Laurent Pinchart
2016-08-04 19:30                                                             ` Steven Rostedt
2016-08-03 14:45                                         ` Mark Brown
2016-08-04 13:48                                         ` Geert Uytterhoeven
2016-08-03 14:19                                       ` Greg KH
2016-08-03 14:45                                         ` Jiri Kosina
2016-08-03 15:48                                           ` Guenter Roeck
2016-08-03 16:12                                             ` Dmitry Torokhov
2016-08-03 16:44                                               ` Guenter Roeck
2016-08-03 17:20                                                 ` Dmitry Torokhov
2016-08-03 18:21                                                   ` Guenter Roeck
2016-08-03 18:59                                                     ` Dmitry Torokhov
2016-08-03 21:25                                                       ` Jiri Kosina
2016-08-03 21:31                                                         ` Dmitry Torokhov
2016-08-03 21:36                                                           ` Jiri Kosina
2016-08-04  3:06                                                             ` Steven Rostedt
2016-08-03 22:25                                                           ` Guenter Roeck
2016-08-04 14:02                                                         ` Jan Kara
2016-08-03 18:57                                                 ` Jiri Kosina
2016-08-03 22:16                                                   ` Guenter Roeck
2016-08-04  3:14                                               ` Steven Rostedt
2016-08-04  3:32                                                 ` Dmitry Torokhov
2016-08-04  4:05                                                   ` Steven Rostedt
2016-08-04  8:27                                               ` Greg KH
2016-08-04  8:21                                             ` Greg KH
2016-08-05  4:46                                             ` Jonathan Cameron
2016-08-03 14:12                                     ` Jani Nikula
2016-08-03 14:33                                       ` Daniel Vetter
2016-08-03 13:20                                 ` Rafael J. Wysocki
2016-08-03 13:21                                   ` Jiri Kosina
2016-08-04  1:05                                     ` Rafael J. Wysocki
2016-08-03 13:39                                   ` Greg KH
2016-08-03 14:10                                     ` Chris Mason
2016-08-04  0:37                                     ` Rafael J. Wysocki
2016-08-03 15:47                                 ` Guenter Roeck
2016-08-04  8:25                                   ` Greg KH
2016-08-03 11:12                               ` Mark Brown
2016-07-10  2:27                   ` Dan Williams
2016-07-10  6:10                     ` Guenter Roeck
2016-07-11  4:03                     ` [Ksummit-discuss] [CORE TOPIC] kernel unit testing Trond Myklebust
2016-07-11  4:22                       ` James Bottomley
2016-07-11  4:30                         ` Trond Myklebust
2016-07-11  5:23                       ` Guenter Roeck
2016-07-11  8:56                         ` Hannes Reinecke
2016-07-11 16:20                         ` Mark Brown
2016-07-11 19:58                       ` Dan Williams
2016-07-12  9:35                         ` Jan Kara
2016-07-13  4:56                           ` Dan Williams
2016-07-13  9:04                             ` Jan Kara
2016-07-11 20:24                       ` Kevin Hilman
2016-07-11 23:03                         ` Guenter Roeck
2016-07-18  7:44                           ` Christian Borntraeger
2016-07-18  8:44                             ` Hannes Reinecke
2016-07-28 21:09                         ` Laurent Pinchart
2016-07-28 21:33                           ` Bird, Timothy
2016-08-02 18:42                           ` Kevin Hilman
2016-08-02 19:44                             ` Laurent Pinchart
2016-08-02 20:33                               ` Mark Brown
2016-07-13  4:48                       ` Alex Shi
2016-07-13  9:07                         ` Greg KH
2016-07-13 12:37                           ` Alex Shi
2016-07-13 19:59                             ` Olof Johansson
2016-07-13 22:23                               ` Alex Shi
2016-07-14  1:19                             ` Greg KH
2016-07-14  9:48                               ` Alex Shi
2016-07-14  9:54                                 ` Ard Biesheuvel
2016-07-14 14:13                                   ` Alex Shi
2016-07-13 14:34                           ` Mark Brown
2016-07-14  3:17                             ` Greg KH
2016-07-14 10:06                               ` Mark Brown
2016-07-15  0:22                                 ` Greg KH
2016-07-15  0:51                                   ` Guenter Roeck
2016-07-15  1:41                                     ` Greg KH
2016-07-15  2:56                                       ` Guenter Roeck
2016-07-15  4:29                                         ` Greg KH
2016-07-15  5:52                                           ` NeilBrown
2016-07-15  6:14                                             ` Greg KH
2016-07-15  7:02                                               ` Jiri Kosina
2016-07-15 11:42                                                 ` Greg KH
2016-07-15 11:47                                                   ` Jiri Kosina
2016-07-15 12:17                                                   ` Geert Uytterhoeven
2016-07-15  6:19                                             ` Rik van Riel
2016-07-15 12:17                                               ` Mark Brown
2016-07-26 13:45                                                 ` David Woodhouse
2016-07-15  6:32                                             ` James Bottomley
2016-07-15  7:01                                               ` NeilBrown
2016-07-15  7:28                                                 ` James Bottomley
2016-07-15  7:36                                                 ` Dmitry Torokhov
2016-07-15  9:29                                                   ` NeilBrown
2016-07-15 16:08                                                     ` Dmitry Torokhov
2016-07-15 11:05                                               ` Geert Uytterhoeven
2016-07-15 12:35                                                 ` James Bottomley
2016-07-15 12:44                                                   ` Geert Uytterhoeven
2016-07-15 11:24                                             ` Vlastimil Babka
2016-07-28 22:07                                               ` Laurent Pinchart
2016-07-21  7:13                                           ` Daniel Vetter
2016-07-21  7:44                                             ` Josh Triplett [this message]
2016-07-15 11:10                                     ` Mark Brown
2016-07-15 11:40                                       ` Greg KH
2016-07-15 12:38                                         ` Mark Brown
2016-07-10  2:07                 ` [Ksummit-discuss] [CORE TOPIC] stable workflow Rafael J. Wysocki
2016-07-10  6:19               ` Olof Johansson
2016-07-10 14:42                 ` Theodore Ts'o
2016-07-11  1:18                   ` Olof Johansson
2016-07-10  7:29           ` Takashi Iwai
2016-07-10 10:20             ` Jiri Kosina
2016-07-10 13:33               ` Guenter Roeck
2016-07-15  9:27                 ` Zefan Li
2016-07-15 13:52                   ` Guenter Roeck
2016-07-26 13:08           ` David Woodhouse
2016-07-10  7:37     ` Takashi Iwai
2016-07-09  0:06 ` Jason Cooper
2016-07-09  0:42   ` James Bottomley
2016-07-09  8:43     ` Jiri Kosina
2016-07-09  9:36       ` Mark Brown
2016-07-09 15:13         ` Guenter Roeck
2016-07-09 19:40           ` Sudip Mukherjee
2016-07-11  8:14             ` Jiri Kosina
2016-07-09 21:21           ` Theodore Ts'o
2016-07-11 15:13             ` Mark Brown
2016-07-11 17:03               ` Theodore Ts'o
2016-07-11 17:07                 ` Justin Forbes
2016-07-11 17:11                 ` Mark Brown
2016-07-11 17:13                   ` Olof Johansson
2016-07-11 17:17                     ` Mark Brown
2016-07-11 17:24                       ` Guenter Roeck
2016-07-11 17:44                         ` Mark Brown
2016-07-13  1:08                   ` Geert Uytterhoeven
2016-07-11 17:15                 ` Dmitry Torokhov
2016-07-11 17:20                   ` Theodore Ts'o
2016-07-11 17:26                     ` Dmitry Torokhov
2016-07-11 17:27                     ` Olof Johansson
2016-07-11 23:13                   ` Guenter Roeck
2016-07-11 17:17                 ` Josh Boyer
2016-07-11 22:42                 ` James Bottomley
2016-07-20 17:50                 ` Stephen Hemminger
2016-07-11  8:18           ` Jiri Kosina
2016-07-11 23:32             ` Guenter Roeck
2016-07-11 14:22           ` Mark Brown
2016-07-10 16:22         ` Vinod Koul
2016-07-10 17:01           ` Theodore Ts'o
2016-07-10 18:28             ` Guenter Roeck
2016-07-10 22:38               ` Rafael J. Wysocki
2016-07-11  8:47                 ` Jiri Kosina
2016-07-27  3:19                 ` Steven Rostedt
2016-07-10 22:39               ` Theodore Ts'o
2016-07-11  1:12                 ` Olof Johansson
2016-07-11  5:00             ` Vinod Koul
2016-07-11  5:13               ` Theodore Ts'o
2016-07-11 10:57                 ` Luis de Bethencourt
2016-07-11 14:18                 ` Vinod Koul
2016-07-11 17:34                   ` Guenter Roeck
2016-07-27  3:12                   ` Steven Rostedt
2016-07-27  4:36                     ` Vinod Koul
2016-07-09 14:57     ` Jason Cooper
2016-07-09 22:51       ` Jonathan Corbet
2016-07-10  7:21 ` Takashi Iwai
2016-07-11  7:44 ` Christian Borntraeger
2016-08-02 13:49 ` Jani Nikula

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=20160721074453.GA11126@x \
    --to=josh@joshtriplett.org \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=ksummit-discuss@lists.linuxfoundation.org \
    --cc=trondmy@primarydata.com \
    /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.