[GSoC Project RFC] "git log --oneline" improvements
From: Parth Gala <hidden>
Date: 2020-03-20 23:11:40
Hey everyone, I am Parth Gala. I am second year major in Electronics and Communications Engineering at Dwarkadas J. Sanghvi College of Engineering. I am interested in participating for GSoC 2020 under the Git organisation. First of all I would like to apologise for sending in my participation so late. I lost 2 crucial weeks of discussion from the end of Feb due to some personal problems. I was initially interested in working on the rewrite of submodule from shell to C, but after checking the mailing list I saw that Shourya Shukla had already taken it up and had started work on it, so I felt it wise to leave it to him. So all the reading that I did for submodules had to be repeated for this project. I went through the discussions here[1] and here[2] and what I could conclude from [1] is, the 'git log --oneline' command currently shows the decorations of a commit before the commit message but after the shortened hash due to which the alignment of the messages is disturbed like this, 3f07dac29 (HEAD -> master) pathspec: don't error out on all-exclusionary pathspec patterns ca4a562f2 pathspec magic: add '^' as alias for '!' 02555c1b2 ls-remote: add "--diff" option to show only refs that differ 6e3a7b339 (tag: v2.12.0-rc0, origin/master, origin/HEAD) Git 2.12-rc0 fafca0f72 Merge branch 'cw/log-updates-for-all-refs-really' 74dee5cfa Merge branch 'pl/complete-diff-submodule-diff' 36acf4123 Merge branch 'rs/object-id' And if the decorations were to be shown after the message and you were checking the logs just to see the status of a branch rather than the contents then you would again be at a disadvantage, since you would want to have them visible right next to the hashes. Besides decorations at the end would have the inconvenience of being truncated at the end of the line on smaller screens. This format for --oneline with decorations was decided upon, b9df16a4c (HEAD -> master) pathspec: don't error out on all-exclusionary pathspec patterns 91a491f05 pathspec magic: add '^' as alias for '!' c8e05fd6d ls-remote: add "--diff" option to show only refs that differ 20769079d (tag: v2.12.0-rc2, origin/master, origin/HEAD) Git 2.12-rc2 076c05393 Hopefully the final batch of mini-topics before the final In [2] such formats with date and timestamp are discussed along with compatibility for --graph option as well, === 2015-09-17 === * ee6ad5f4 12:16 jch (tag: v2.5.3) Git 2.5.3 === 2015-09-09 === * b9d66899 14:22 js am --skip/--abort: merge HEAD/ORIG_HEAD tree into index | === 2015-09-04 === | * 27ea6f85 10:46 jch (tag: v2.5.2) Git 2.5.2 * 74b67638 10:36 jch (tag: v2.4.9) Git 2.4.9 .......... * ecad27cf 10:32 jch (tag: v2.3.9) Git 2.3.9 So these are the two main formats to be enhanced along with as many options of log as possible. What are your views on this ? Also, I had submitted a patch series here[3] but I felt it was trivial so took upon a bug fix[4] which is yet to be sent to the mailing list for discussions. I am currently drafting my proposal which I will send for discussion after having received comments here. Thanks :-), Parth. [1] : https://lore.kernel.org/git/xmqqeg42fslw.fsf@gitster.mtv.corp.google.com/T/#t (local) [2] : https://lore.kernel.org/git/CA+55aFwT2HUBzZO8Gpt9tHoJtdRxv9oe3TDoSH5jcEOixRNBXg@mail.gmail.com/T/#t (local) [3] : https://public-inbox.org/git/pull.545.git.1581535151.gitgitgadget@gmail.com/#t [4] : https://github.com/gitgitgadget/git/pull/582