git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] contrib/git-candidate: Add README

From
David Turner <dturner@twopensource.com>
Date
Nov 10, 2015, 20:19 UTC
Message-ID
<1447186751.20147.24.camel@twopensource.com>
In-Reply-To
<1447160198-23296-3-git-send-email-richard.ipsum@codethink.co.uk>

I didn't actually read the code. Instead, I started with the README and decided to provide both text and UX comments all mixed up. These are mostly my personal preferences; take them or leave them as you choose.

I'm really excited about this tool and I think it's got great potential!
On Tue, 2015-11-10 at 12:56 +0000, Richard Ipsum wrote:
Show 15 quoted lines
> Describes motivation for git-candidate and shows an example workflow.
> 
> Signed-off-by: Richard Ipsum <richard.ipsum@codethink.co.uk>
> ---
>  contrib/git-candidate/README.md | 154 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 154 insertions(+)
>  create mode 100644 contrib/git-candidate/README.md
> 
> diff --git a/contrib/git-candidate/README.md b/contrib/git-candidate/README.md
> new file mode 100644
> index 0000000..d2d4437
> --- /dev/null
> +++ b/contrib/git-candidate/README.md
> @@ -0,0 +1,154 @@
> +git-candidate

I have not heard the name "candidate" used this way. What about "git codereview"?

Show 7 quoted lines
> +=============
> +
> +git-candidate provides candidate review and patch tracking,
> +it differs from other tools that provide this by storing _all_
> +content within git.
> +
> +## Why?

I've made a few suggestions below that you might think are out of scope. If they are, it might be good to have a "non-goals" section so that people know what the scope of the tool is.

> +Existing tools such as Github's pull-requests and Gerrit are already
> +in wide use, why bother with something new?
> +
> +We 
who?  
> are concerned that whilst 

Today I learned: "whilst" can be used in the sense of "although" (I had previously thought only "while" could be used this way, but I was wrong! )

> git is a distributed version control
> +system the systems used to store comments and reviews for content
insert comma after "system"
> +under version control are usually centralised,
replace comma with period.
> +git-candidate aims to solve this by storing
> +all patch-tracking data in git proper.
s/tracking/tracking and review/ ?  Or something
Show 13 quoted lines
> +## Example review process
> +
> +### Contributor - Submits a candidate
> +
> +	(hack hack hack)
> +
> +	(feature)$ git commit -m "Add archived repo"
> +	(feature)$ git candidate create archivedrepo master
> +		-m "Add support for archived repo"
> +	Candidate archivedrepo created successfully.
> +	(feature)$ git candidate submit origin archivedrepo
> +	Candidate was submitted successfully.
> +### Upstream - Reviews candidate

What happens if a third party wants to review candidate? OR is this just the same as if upstream does it?

Show 6 quoted lines
> +	(master)$ git candidate fetch origin
> +	(master)$ git candidate status origin/archiverepo
> +	Revision: 6239bd72d597357af901718becae91cee2a32b73
> +	Ref: candidates/origin/archiverepo
> +	Status: active
> +	Land: master

Could this be "Merge: master"? Or something that doesn't invent a new term?

Show 8 quoted lines
> +	Add archived repo support
> +
> +	 lib/gitano/command.lua | 28 ++++++++++++++++++++++------
> +	 1 file changed, 22 insertions(+), 6 deletions(-)
> +
> +	(master)$ git show candidates/origin/archiverepo
> +	commit 2db28539c8fa7b81122382bcc526c6706c9e113a
> +	Author: Richard Ipsum <richard.ipsum@codethink.co.uk>

Probably better to use example.com addresses in the README rather than real people. Git traditionally uses "A U Thor" as the fake name.

Show 14 quoted lines
> +	Date:   Thu Oct 8 10:43:22 2015 +0100
> +
> +	    Add support for archived repository masking in `ls`
> +
> +	    By setting `project.archived` to something truthy, a repository
> +	    is thusly masked from `ls` output unless --all is passed in.
> +
> +	    Signed-off-by: Richard Ipsum <richard.ipsum@codethink.co.uk>
> +	....
> +	....
> +
> +
> +	(master)$ git candidate review origin/archiverepo --vote -1
> +		-m "Sorry, I'll need to see tests before I can accept this"

Are per-line or per-commit comments supported? If so, please add an example of this.

> +	(master)$ git candidate submit origin archiverepo
> +	Review added successfully

Is the contributor automatically (optionally) emailed on this? If not, consider this a feature request for this.

Show 52 quoted lines
> +### Contributor - Revises candidate
> +
> +	(master)$ git candidate fetch origin
> +	(master)$ git candidate status origin/archiverepo
> +	Revision: 6239bd72d597357af901718becae91cee2a32b73
> +	Ref: candidates/origin/archiverepo
> +	Status: active
> +	Land: master
> +
> +	Add archived repo support
> +
> +	 lib/gitano/command.lua | 28 ++++++++++++++++++++++------
> +	 1 file changed, 22 insertions(+), 6 deletions(-)
> +
> +	--------------------------------------------------------------------------------
> +	1 review
> +	--------------------------------------------------------------------------------
> +
> +	    Author: Emmet Hikory <persia@shipstone.jp>
> +	    Date:   Tue Oct 13 10:09:45 2015 +0100
> +	    Vote:   -1
> +
> +	    Sorry, I'll need to see tests before I can accept this
> +
> +	--------------------------------------------------------------------------------
> +
> +	(hack hack hack add tests)
> +
> +	(feature_v2)$ git log --oneline -1
> +	Ensure the `ls` yarn checks for archived repos
> +
> +	(feature_v2)$ git candidate revise origin/archiverepo
> +		-m "Add archived repo support with tests"
> +	Candidate archiverepo revised successfully.
> +
> +	(feature_v2)$ git candidate submit origin archiverepo
> +	Candidate was submitted successfully.
> +
> +### Upstream - Merges candidate
> +
> +	(master)$ git candidate fetch origin
> +	(master)$ git candidate status origin/archiverepo
> +	Revision: 4cd3d1197d399005a713ca55f126a9086356a072
> +	Ref: candidates/origin/archiverepo
> +	Status: active
> +	Land: master
> +
> +	Add archived repo support with tests
> +
> +	 lib/gitano/command.lua      | 28 ++++++++++++++++++++++------
> +	 testing/02-commands-ls.yarn | 19 +++++++++++++++++++
> +	 2 files changed, 41 insertions(+), 6 deletions(-)

"git candidate diff" might be nice too to show the diff between v1 and v2. You might even have "git candidate commit-diff" (or some better name) so you can see which commit has changed in a changeset containing multiple commits.

> +	(master)$ git candidate review origin/archiverepo --vote +2
> +		-m "Looks good, merging.  Thanks for your efforts"
> +	Review added successfully

Is that +2 "+1 because I like it, +1 because I previously -1'd it?" If so, it might be nice to have --replace-vote so you don't have to track, "wait, I did -1, then +1, then -1 again..."

> +	(master)$ git candidate submit origin archiverepo
> +	Candidate was submitted successfully.

I don't understand what the verb "submit" means here. Is it "mark this as accepted"? If so, "accept" might be a better word.

> +	(master)$ git merge candidates/origin/archiverepo

I would like "git candidate merge" to do a submit+merge the way that pull does a fetch+merge. It seems like the common case. Also, if it turns out at this point that there's a merge conflict, I might want to back out the acceptance.

Show 28 quoted lines
> +	(master)$ git push origin master
> +
> +### Contributor - Observes candidate has been accepted
> +
> +	(feature_v2)$ git candidate fetch origin
> +	(feature_v2)$ git candidate status origin/archiverepo
> +	Revision: 4cd3d1197d399005a713ca55f126a9086356a072
> +	Ref: candidates/origin/archiverepo
> +	Status: active
> +	Land: master
> +
> +	Add archived repo support with tests
> +
> +	 lib/gitano/command.lua      | 28 ++++++++++++++++++++++------
> +	 testing/02-commands-ls.yarn | 19 +++++++++++++++++++
> +	 2 files changed, 41 insertions(+), 6 deletions(-)
> +
> +	--------------------------------------------------------------------------------
> +	1 review
> +	--------------------------------------------------------------------------------
> +
> +	    Author: Emmet Hikory <persia@shipstone.jp>
> +	    Date:   Tue Oct 13 10:35:00 2015 +0100
> +	    Vote:   +2
> +
> +		Looks good, merging.  Thanks for your efforts
> +
> +	--------------------------------------------------------------------------------

You should include here "git candidate remove archiverepo". And somewhere an example of "git candidate list".

Previous: Richard IpsumNext: Richard Ipsum
Message 4 of 14 in “git-candidate: git based patch tracking and review”
  1. 0/2 git-candidate: git based patch tracking and reviewRichard Ipsum, Nov 10, 2015
  2. 1/2 contrib: Add git-candidate subcommandRichard Ipsum, Nov 10, 2015
  3. 2/2 contrib/git-candidate: Add READMERichard Ipsum, Nov 10, 2015
  4. David TurnerNov 10, 2015
  5. Richard IpsumNov 11, 2015
  6. David TurnerNov 11, 2015
  7. Sebastian SchuberthJan 6, 2016
  8. Michael HaggertyNov 11, 2015
  9. Richard IpsumNov 11, 2015
  10. Jeff KingNov 14, 2015
  11. Junio C HamanoNov 14, 2015
  12. Jonathan NiederDec 1, 2015
  13. Dave BorowitzDec 1, 2015
  14. Richard IpsumJan 6, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.