Re: [Outreachy]: Help for Outreachy Application

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Charvi

On 27/10/2020 14:24, Charvi Mendiratta wrote:
On Mon, 26 Oct 2020 at 16:06, Phillip Wood <phillip.wood123@xxxxxxxxx> wrote:
On 25/10/2020 07:43, Charvi Mendiratta wrote:
I have read the Outreachy projects and am interested in the project
"Improve droping and rewording commits in Git interactive rebase". I
spent some time understanding the project and have gone through its
detailed explanation in the issue[2].

Thanks for your interest in the project

I apologize for late replies, as I thought to spend some more time in
understanding the project.

That's fine, no need to apologize - taking time to understand the project is good

>[...]
I also looked into archives of the mailing list and found the
patches[3] submitted by Philip for --reword option in git commit and
need some more pointers about its status and how to start with its
code ?
Also, in the issue[2] as commented by Phillip regarding the patches[4]
that implements reword. I would like to know if I can start with that
mentioned work, if available.

Whoever takes on this project is very welcome to use my patches as a
starting point. The code in the patches is sound as far as I know and
the I believe the test coverage is reasonable (though that would need to
be checked). They are lacking any documentation and there has been a
change to the way empty commits are handled by rebase since they were
written so "rebase -i: always keep empty amend! commits" will need
looking at and could probably be dropped.

Okay, I will note these points .

We will also need to decide on the best UI for the --reword idea. My
patches were developed a couple of years ago before I was aware of
dscho's idea and so implement a slightly different UI to the one
outlined in the github issue (they call 'reword!' 'amend!' instead). I'm
not that keen on adding another option to `git commit` to create yet
another flavor of fixup commit, we'll need to agree a way forward on that[1]


I agree that we need to look into options for creating reword! commit
and drop! commit and its integration with interactive rebase .

Also, considering this I think there can be two possibilities :

As mentioned by Junio [1] that we can extend the existing '--fixed <commit>'/
'--squash <commit>', to implement reword! commit as mentioned in the issue[2]
by Dscho .

My concern with the idea of using `--fixup=<commit> --edit` to create a reword! commit is that it is changing existing behavior. I (very) occasionally add some temporary notes to a fixup commit if I know I'm not going to be rebasing for a while, that would still be possible under the new scheme but would require manually editing the subject line.

or as you have mentioned to change the semantics of
'git commit --fixup/squash".

I think that would require a config variable to opt in which is not ideal.

Since that discussion I've wondered if changing commit to allow `--fixup=reword:<commit>` to create an empty reword! commit that changes the message of <commit> when it is rebased and `--fixup=amend:<commit>` to create a reword! commit that changes the content and message of <commit> when it is rebased. The advantage is that they are backwards compatible and mirror --amend and --reword as suggested in the other thread. We could allow `reword/amend:<commit>` to be abbreviated as `r/a:<commit>`

We also need to decide how to apply a reword! commit when rebasing. My patch series adds a new command 'amend' but I wonder if we should think about using `fixup -C` to reuse the message without editing and `fixup -c` to reuse the message and have the user edit it as we do for `merge`

One other point - as the reword! mechanism changes the contents and message of the commit I wonder if we could improve the name - maybe amend! or revise! I'm not sure.

And, if we consider the above then for drop! commit, I wonder if we
can implement
it in the same way as mentioned in issue [2] by adding the --drop
option to 'git revert'.

Secondly, as you have mentioned here [3], there could be a `rewrite` command
as a wrap of `rebase -i` . But regarding this, I want to once confirm
if this can be a
solution of this project or is it need to be done later on.

The 'rewrite' idea is definitely not part of this project, it's an idea for better history editing in the future.

Best Wishes

Phillip

Please correct me if I am wrong.

Thanks and Regards,
Charvi

[1] https://lore.kernel.org/git/xmqqft77glhn.fsf@xxxxxxxxxxxxxxxxxxxxxx/
[2] https://github.com/gitgitgadget/git/issues/259
[3] https://lore.kernel.org/git/95cc6fb2-d1bc-11de-febe-c2b5c78a6850@xxxxxxxxx/

Best Wishes

Phillip

[1]
https://lore.kernel.org/git/95cc6fb2-d1bc-11de-febe-c2b5c78a6850@xxxxxxxxx


Thanks and Regards,
Charvi

[1] https://public-inbox.org/git/20201021124823.2217-1-charvi077@xxxxxxxxx/
[2] https://github.com/gitgitgadget/git/issues/259
[3]
https://public-inbox.org/git/pull.736.git.1600695050.gitgitgadget@xxxxxxxxx/
[4] https://github.com/phillipwood/git/commits/wip/rebase-amend





[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux