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

Re: git-gui: missing some patches from git?

From
Pratyush Yadav <me@yadavpratyush.com>
Date
Sep 18, 2019, 15:14 UTC
Message-ID
<20190918151404.rqjohdderwxfqtdm@yadavpratyush.com>
In-Reply-To
<20190918092721.GA76617@archbookpro.localdomain>
On 18/09/19 02:27AM, Denton Liu wrote:
Show 13 quoted lines
> On Wed, Sep 18, 2019 at 09:02:37AM +0200, Birger Skogeng Pedersen wrote:
> > Hi Pratyush,
> > 
> > 
> > I was comparing your git-gui repo[1] with the source code of
> > git/git-gui[2]. There seems to be a couple of things missing.
> > 
> > For example, I created a patch back in March 2018[3]. Junio pulled it
> > so the changes are really there in git/git-gui/git-gui.sh (see this[4]
> > line). This was while there was no git-gui maintainer. I guess the
> > change never got merged to git-gui, but directly to git.
> > 
> > Not sure what you should to about it, I just wanted to let you know.

This is something I've been aware of, but I have followed the strategy of ignoring the problem till someone complains. Well, that someone has now complained.

I'm not particularly comfortable with cross-tree/sub-tree merges, so I've been dreading doing this for a while. Guess now its time to get my hands dirty.

Show 13 quoted lines
> > 
> > [1] https://github.com/prati0100/git-gui
> > [2] https://github.com/gitster/git/tree/master/git-gui
> > [3] https://public-inbox.org/git/20180302100148.23899-1-birgersp@gmail.com/
> > [4] https://github.com/gitster/git/blob/master/git-gui/git-gui.sh#L3885
> > 
> > 
> > Birger
> 
> As an exercise in writing throwaway scripts, I created this monstrosity.
> If you're interested in merging all of the git-gui branches that came
> from mainline back into git-gui's master, perhaps we could do something
> like this:

Ah! Thanks a lot for this. This reduces some of the work I've been dreading.

Show 17 quoted lines
> 
> 	#!/bin/sh
> 
> 	branches=
> 	# note that all instances of "master" refer to git.git's "master"
> 	# also, 5ab7227 is the latest commit in Pat's git-gui repo
> 	for c in $(git rev-list --children master 5ab7227 | grep ^5ab7227 | cut -d' ' -f2-)
> 	do 
> 		merge_commit=$(git rev-list $c..master --ancestry-path --merges | tail -n1)
> 		branch_name=$(git show -s --format=%s $merge_commit | sed -e "s/Merge branch '\\([^']*\\)' of .*/\\1/")
> 
> 		#echo $branch_name: $(git rev-parse $merge_commit^2)
> 		git branch -f "$branch_name" $merge_commit^2
> 		branches="$branches $branch_name"
> 	done
> 	# this also assumes git-gui's master is checked out
> 	git merge $branches

Assuming I have git.git cloned in ../git (relative to git-gui.git), I ran:

  git pull -Xsubtree=git-gui ../git $branches
instead of:
  git merge $branches

because git-gui's tree doesn't have those commits and branches yet, so we can't merge straight away. This seems to have worked, but I thought I'd mention it in case it would cause some subtle problems.

Show 8 quoted lines
> This script should resurrect all of the branches that were based on
> 5ab7227 from mainline's master. Then (assuming you have git-gui's
> master checked out), it should do a big octopus merge to bring all of
> the changes in.
> 
> We end up with the following branches being merged:
> 
> 	js/msgfmt-on-windows: 492595cfc70f97cd99d4c460db1ba01b73dab932

This branch is already in git-gui (with the exception of one commit. More on that below).

Show 14 quoted lines
> 	tz/fsf-address-update: 63100874c1653dd6a137f74143eda322550eabc7
> 	jn/reproducible-build: 474642b4a47c74a1f277955d7387d1886546fa01
> 	ls/no-double-utf8-author-name: 331450f18a7fd298ddd6b85cc5e8ed9dba09f9da
> 	js/misc-git-gui-stuff: 76756d67061076c046973bff2089ad49f5dc2eb6
> 	bb/ssh-key-files: 6a47fa0efa342daa53c6386538fda313420351a5
> 	bp/bind-kp-enter: 146a6f1097f451c6b6d332916a515b7ce8c07e9a
> 	cb/ttk-style: f50d5055bf9bb2aa35e629d31943334afc4a9f10
> 	py/call-do-quit-before-exit: 5440eb0ea2651c45a0e46f2335ecbb8d1f42c584
> 
> Then perhaps you could do a request-pull and development could continue
> on your fork?
> 
> Not sure if this is even desirable but here's the script just in case it
> ends up useful. I had fun writing it.
Just to pick your brain: in what case would this not be desirable?
 
Show 5 quoted lines
> Also note that we end up missing two commits that made changes to
> git-gui/ under mainline git (not directly to the git-gui repo): 
> 
> 	* 7560f547e6 (treewide: correct several "up-to-date" to "up to date", 2017-08-23)
> 	* 00ddc9d13c (Fix build with core.autocrlf=true, 2017-05-09)
One more commit that is missing: 492595cfc7 (git-gui (MinGW): make use of MSys2's msgfmt, 2017-07-25)

This commit is comes from the merge of js/msgfmt-on-windows, which has all the commits from the merge 5ab7227 (Merge remote-tracking branch 'philoakley/dup-gui', 2017-03-18) in git-gui.

While merging js/msgfmt-on-windows should get this commit into git-gui, I'd rather have it separate,

> 
> Hope any of this is useful to anyone,
It is very useful. Thanks :)
-- 
Regards,
Pratyush Yadav
Previous: Denton LiuNext: Denton Liu
Message 3 of 13 in “git-gui: missing some patches from git?”
  1. Birger Skogeng PedersenSep 18, 2019
  2. Denton LiuSep 18, 2019
  3. Pratyush YadavSep 18, 2019
  4. Denton LiuSep 18, 2019
  5. Junio C HamanoSep 18, 2019
  6. Pratyush YadavSep 18, 2019
  7. Pratyush YadavSep 19, 2019
  8. Denton LiuSep 19, 2019
  9. Pratyush YadavSep 19, 2019
  10. Denton LiuSep 19, 2019
  11. Denton LiuSep 19, 2019
  12. Pratyush YadavSep 24, 2019
  13. Junio C HamanoSep 18, 2019

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.