Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
570 views
in Technique[技术] by (71.8m points)

sorting - How can I make git log order based on author's timestamp?

I use a fairly complex git-log command involving --date-order to get an overview of my repository's status; but unfortunately, --date-order seems to use the committer date, not the author date. That means that each time I bring my topic branches up to date by rebasing them onto the current upstream, I lose the helpful chronological ordering in my git-log of relative commits in my topic branches (that is, each branch becomes a single long line, because all of its commits got rebased to sequential and nearly-identical committer timestamps.)

If I could get git-log to order commits by the author timestamp instead of the committer timestamp, this would be solved. Does anybody know of a way to do that?


For those visiting this from Google results, you may want to look into josephdpurcell's solution (and in-depth blog post!), below. It's quite excellent, if you're looking for standard git-log style output, multi-line, with detailed messages about each commit.

Unfortunate, I now need to amend this question, because I'm an idiot and didn't provide more specific information about my use-case: I use git-log in “--graph mode,” and I need to make git-log itself operate in author-date-order. As far as I've been able to ascertain, this is completely impossible to do from outside git-log, because git-log itself handles the graph ordering and printing.

A script, or patch for git-log, may be necessary, it seems. I'll leave this open until somebody can either 1. write such a script, or 2. we can talk the git authors into including a --author --date-order combination of flags. (=


For reference, here's what my current glog function's output looks like, and what I need to re-order:

glog output

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

git version 1.8.4 added an --author-date-order argument to git log; according to the release notes, "the output is topologically sorted and commits in parallel histories are shown intermixed together based on the author timestamp."


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...