Re: Diffing submodule does not yield complete logs for merge commits

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

 



On Sat, May 30, 2015 at 2:19 PM, Robert Dailey <rcdailey.lists@xxxxxxxxx> wrote:
> On Sat, May 30, 2015 at 12:04 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
>> Robert Dailey <rcdailey.lists@xxxxxxxxx> writes:
>>
>>> In the meantime I'd like to ask, do we even need to add an option for
>>> this? What if we just make `diff.submodule log` not use
>>> --first-parent? This seems like a backward compatible change in of
>>> itself.
>>
>> Why?  People have relied on submodule-log not to include all the
>> noise coming from individual commits on side branches and instead
>> appreciated seeing only the overview by merges of side branch topics
>> being listed---why is regressing the system to inconvenience these
>> existing users "a backward compatible change"?
>
> Backward compatible in the sense that it does not break existing
> functionality. For example, removing -D from `git branch` would be a
> backward breaking change.
>
> Also not everyone has a disciplined merge-commit editing policy like
> the Linux & Git projects do. In fact (especially in corporate
> environments), most merge commit messages are useless and
> auto-generated. It's in fact very common (depending on popular
> tooling) to not have the ability to edit these messages. Example:
>
>     Merge branch "topic" into "master"
>
> This is the defacto message you get when you use Github, Atlassian
> Stash, etc. any time you merge a PR. For repositories that only accept
> changes through pull requests, it is not possible to generate a diff
> log of submodules that is useful without showing the ancestor commits
> on all parents. Right now 'log' literally gives you the following for
> a submodule that has a mainline branch that does not accept direct
> pushes (i.e. only PRs):
>
>     > Merge branch "topic1" into "master"
>     > Merge branch "topic2" into "master"
>     > Merge branch "origin/develop" into "master"
>     > Merge branch "topic3" into "master"
>
> I would argue that this situation is common -- more common than what
> you would typically see in a well groomed git repository that does not
> use PRs or always does rebase+ff-merge.
>
> That is the basis for my concern. No functionality is broken and
> cators to the common case. But I guess since we're discussing 2
> distinct workflows, it makes sense to have 2 options for viewing the
> submodule logs. Because if 'full-log' were indeed the default, it
> would cause a lot of noise in the well-disciplined-merge-commit
> workflow.
>
> From a high level (to explain my motivation for my simplified and
> arguably naive suggestion), I work with a lot of amateur users of Git.
> They always complain about using Git and how "SVN is better". Yet they
> do not accept the challenge of learning Git, which is a very
> complicated tool. Much of git I would argue is not very beginner (even
> user) friendly (although things are certainly getting better). With
> such an advanced tool, with such complex configuration and behavior,
> and given all the friction it causes, I can only do my best to offer
> seemingly sensible alternatives to adding MORE configuration.
>
> Anyway it's just a thought. Glad to get feedback and I see both sides
> of the fence on this one.
>
>>> And it's simpler to implement. I can't think of a good
>>> justification to add more settings to an already hugely complex
>>> configuration scheme for such a minor difference in behavior.
>>
>> Careful, as that argument can cut both ways.  If it is so a minor
>> difference in behaviour, perhaps we can do without not just an
>> option but a feature to omit --first-parent here.  That would be
>> even simpler to implement, as you do not have to do anything.
>>
>> So, if you think the new behaviour can help _some_ users, then you
>> would need the feature and a knob to enable it, I would think.
>
> I don't really understand your contrasted example here. Can you explain:
>
>     "...we can do without not just an option but a feature to omit
> --first-parent..."
>
> Again thanks for the feedback.

I'm having some difficulty with the tests. What it looks like is that
the test repository is created by calling test-lib.sh at the top. Then
by the time the commands after that are run, it's inside the temp
repository.

At the bottom of t4041, I add this:

    test_create_repo sm3 &&
    git add sm3 &&
    cd sm3 &&
    echo > foo.txt &&
    git add foo.txt &&
    git commit -m 'foo.txt' >/dev/null &&
    git checkout -b topic >/dev/null &&
    echo > topic.txt &&
    git add topic.txt &&
    git commit -m 'topic.txt' >/dev/null &&
    git checkout master >/dev/null &&
    git merge --no-ff --no-edit topic >/dev/null &&
    cd .. &&
    git diff --submodule=log sm3

But this does not work as I expect. How do I add a submodule and then
simulate creation of branches, commits, and merges, prior to running
code in "text_expect_success"?
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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]