Junio C Hamano <gitster@xxxxxxxxx> wrote: > Thomas Rast <trast@xxxxxxxxxxx> writes: > >> Hiroshige Umino <hiroshige88@xxxxxxxxx> writes: >> >>> As "git cherry-pick -" or "git merge -" is convenient to >>> switch back to or merge the previous branch, >>> "git cherry-pick -" is abbreviation of "git cherry-pick @{-1}" >>> to pick up a commit from the previous branch conveniently. >> >> The first line is confusing. Did you mean to invoke the existing 'git >> *checkout* -' and 'git merge -' functionality as a reason why 'git >> cherry-pick -' should exist? > > I think that is what was meant. Just like "-" abbreviation is handy > for users of "checkout" and "merge", "cherry-pick" might. Yes I meant so and it would be useful at least for me. I don't know the usage of cherry-pick (pick up a commit from the previous branch) is comon or not but it may be also good for consistency. Thomas Rast <trast@xxxxxxxxxxx> wrote: > What other commands could reasonably use the '-' shorthand? I've wanted '-' shorthand only for commit, merge and cherry-pick but 'git diff -' may make sense. What do you think of this and other candidates? > Do you have to use a new test file for this? Not have to so I'm moving the tests into t/t3500-cherry.sh. > [...] >> +test_expect_success 'setup' ' >> + echo hello >world && >> + git add world && > (*) >> + git commit -m initial && >> + git branch other && >> + echo "hello again" >>world && >> + git add world && > (*) >> + git commit -m second >> +' > > Our style is to indent the test snippets with a hard tab, not a single > (or eight, for that matter) space. > > [...] >> +test_expect_success 'cherry-pick the commit in the previous branch' ' >> + prev=$(git rev-parse HEAD) && >> + git checkout other && > (*) >> + git cherry-pick - && >> + test "z$(git rev-parse HEAD)" = "z$prev" >> +' > > If you insert 'test_tick' in the places marked with (*), the test fails. > > The tests run under a fake clock to ensure that everything, including > the SHA1s produced, are deterministic. You never advance the clock, so > all commits generated in this script share the same timestamp. > > This means that the cherry-pick of 'second' has the same SHA1 as the > original: its tree, parents, author, timestamp etc. all agree. If you > advance the clock at the last (*), this fails. You should find some > other way of checking what was picked, e.g., by looking at the file > contents. > > That said, please use test_commit in the 'setup' snippet instead of > manually rolling the commits. It will lead to shorter code, and it > handles test_tick for you. It is documented in t/README and in a > comment in t/test-lib-functions.sh. (You still need test_tick > immediately before the cherry-pick!) I overlooked t/README, thank you for kindly guiding testing! -- Hiroshige UMINO @yaotti -- 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