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".
next prev parent 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.