Hi,

On Fri, Oct 3, 2014 at 5:42 PM, Nazri Ramliy <ayieh...@gmail.com> 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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to