On Wed, 27 Sep 2006, Matthew L Foster wrote: > > What is the difference between a merge and a "merge then pushed out"? To answer just this technical question, which came up today: - I might do a merge at 8:30 in the morning, but since I do it on my machine, and nobody else actually saw my merge. - at 9:30, somebody sends me a patch that I already have (through the merge), and I reply saying "I got this already", but I realize I haven't pushed it out. - so I replicate my home machine tree to the one on master.kernel.org, and now others can see it. When did the merge happen? It happened at 8:30 on my machine, and that's what is recorded. End of story. No ifs, buts, maybes about it. That's the only time you can _ever_ see for that merge. When did everybody else see it? It only became _visible_ in the git archive on kernel.org at 9:30, when I pushed out _all_ the merges that I had done (some of them at 8:30, others at 8:00, yet others perhaps at some other time). So all those different merges, which were done at different times, only became visible in another git repository all at the same time, at 9:30. There's _zero_ commits or merges that themselves happened at 9:30. There's no development at all that happened then. The only actual thing that changed at 9:30 was that the _reference_ that made all those old changes visible finally made it to the repository at kernel.org. This is why you can use the ref-logging code to say "Ok, how did my repository look at 9:25 vs 9:35" and you could see the difference. BUT NO ACTUAL COMMIT OR MERGE WILL EVER HAVE THAT TIMESTAMP. That's purely a "when did it show up" question, and the whole question only makes sense within a particular repository (ie the answers are different: on _my_ machine, a merge showed up on 8:30 when it was made. On other machines, the time will always be different). Linus - 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