[TOY PATCH]: rebase: Add --show-files option

DORMANTno replies

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

[TOY PATCH]: rebase: Add --show-files option

From: Nazri Ramliy <hidden>
Date: 2016-06-15 23:02:38

Hi,

When working on a "new feature branch" that touches a lot of files I
tend to make commits that affect only single files, and for very small
changes. Since at this stage I'm experimentating a lot - trying out
ideas, etc. - the commits tend to grow a lot (could be 50-70
individual commits, each modifying one or two files), and I don't
think much about the commit message beside making a one-liner that
explains only the gist.

Most of the times I include the filename in the commit message to help
me identify which commits should be squashed together later.

Only when the feature seems to be functional that I git rebase the
commits in order to shape the history into its final, proper form.

When rebasing these upwards of 40+ commits, it is helpful if the
rebase instruction sheet shows me the actual files that the commits
affect so I made this patch (sorry I couldn't attach it inline since
gmail eats all the tabs) that adds the "--show-files" option to
git-rebase to achieve something to this effect:

pick 996fa59 Remove autoconf submodule
     # :100644 100644 cfc8a25... 28ddb02... M   .gitmodules
     # :160000 000000 0263a9f... 0000000... D   autoconf
... more pick lines
pick 4c5070f Remove automake submodule
     # :100644 100644 28ddb02... f907328... M   .gitmodules
     # :160000 000000 9042530... 0000000... D   automake

Having the list of files shown below each commit, indented to reduce
cluttering the "pick" instruction, really does help in deciding the
reorder and squash candidates.

The files list came from this:

  git show --raw $sha1|awk '/^:/ {print " '"${comment_char}"'\t"$0}'

Thoughts?

nazri

Re: [TOY PATCH]: rebase: Add --show-files option

From: Chris Packham <hidden>
Date: 2016-06-15 23:02:38

Hi,

On Fri, Oct 3, 2014 at 5:42 PM, Nazri Ramliy [off-list ref] wrote:
Hi,

When working on a "new feature branch" that touches a lot of files I
tend to make commits that affect only single files, and for very small
changes. Since at this stage I'm experimentating a lot - trying out
ideas, etc. - the commits tend to grow a lot (could be 50-70
individual commits, each modifying one or two files), and I don't
think much about the commit message beside making a one-liner that
explains only the gist.

Most of the times I include the filename in the commit message to help
me identify which commits should be squashed together later.

Only when the feature seems to be functional that I git rebase the
commits in order to shape the history into its final, proper form.

When rebasing these upwards of 40+ commits, it is helpful if the
rebase instruction sheet shows me the actual files that the commits
affect so I made this patch (sorry I couldn't attach it inline since
gmail eats all the tabs) that adds the "--show-files" option to
git-rebase to achieve something to this effect:

pick 996fa59 Remove autoconf submodule
     # :100644 100644 cfc8a25... 28ddb02... M   .gitmodules
     # :160000 000000 0263a9f... 0000000... D   autoconf
... more pick lines
pick 4c5070f Remove automake submodule
     # :100644 100644 28ddb02... f907328... M   .gitmodules
     # :160000 000000 9042530... 0000000... D   automake

Having the list of files shown below each commit, indented to reduce
cluttering the "pick" instruction, really does help in deciding the
reorder and squash candidates.
Sounds neat. I do similar things and do sometimes lose track of which
files are being touched by multiple "fix compile error" commits. I
haven't actually looked at your patch because gmail can't display it
in-line but it's a feature I'd use.
The files list came from this:

  git show --raw $sha1|awk '/^:/ {print " '"${comment_char}"'\t"$0}'

Thoughts?

nazri
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help