<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>TLDR; Please consider deleting tho crazy all-history-committed-on-a-single-day-bunched-commits...</div><div>    <a href="https://github.com/feenkcom/opensmalltalk-vm/network">https://github.com/feenkcom/opensmalltalk-vm/network</a></div><div> and adopting my "vmmaker_fix_commit_dates_msgs_merge" branch that fixes this.</div><div>    <a href="https://github.com/bencoman/opensmalltalk-vm/network">https://github.com/bencoman/opensmalltalk-vm/network</a><br></div><div><br></div><div>i.e....</div><div>$ git remote add ben git@github.com:bencoman/opensmalltalk-vm.git<br></div><div><div>$ git fetch ben</div><div>$ git checkout -b my_vmmaker_merged_starting_point ben/vmmaker_fix_commit_dates_msgs_merge</div></div><div dir="ltr"><br></div><div dir="ltr">-----------------------------<br><div>I find it useful to review a repo's history using github's Insights > Network....</div><div>Looking at opensmalltalk's right now is a bit strange...</div><div><a href="https://github.com/OpenSmalltalk/opensmalltalk-vm/network" target="_blank">https://github.com/OpenSmalltalk/opensmalltalk-vm/network</a>  <br></div><div><br></div><div>I often use the left arrow key to scroll into the past and it </div><div>was strange that no date numbers appeared at the top for a really long time .</div><div>Looking at the feenkcom account, it was further strange that all the commits consistently spaced and to be bunched together in a single day even though they appeared to have successfully migrated their real commit date,</div><div><br></div><div>I'm guessing its due to the "Initial commit" of that branch being done "6 days ago" and the next child commit is several years earlier.  Probably if that initial commit was forced to a much earlier date, the vmmaker commits would become nicely spaced out in the network chart and you'd</div><div>be able to visually see which other commits each aligned with.</div><div><br></div><div><div>It also seemed strange that commit 55d8605 had no parent but DID have a purple line preceding it, but here it was clear that 55d8605 was an orphan starting the branch...</div><div><a href="https://github.com/feenkcom/opensmalltalk-vm/network" target="_blank">https://github.com/feenkcom/opensmalltalk-vm/network</a></div></div><div><br></div><div><div><img src="cid:ii_johbt1ps1" alt="strange-git-network.png" width="542" height="371"><br></div></div><div><div>I found trying to review the same with `git log` was confusing since the vmmaker-only branch had been merged with the Cog branch into "pullrequest/vmmaker". <br>From browsing the commits on github I found the last separate-vmmaker commit was ab7cbba. </div><div>So then...</div></div><div>$ git clone feenk <a href="https://github.com/feenkcom/opensmalltalk-vm.git" target="_blank">https://github.com/feenkcom/opensmalltalk-vm.git</a></div><div>$ git pull feenk</div><div>$ git checkout ab7cbba -b last_separate_vmmaker<br></div><div>$ git log -1</div><div><div>Author: Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>><br></div><div>Date:   Mon Nov 5 10:32:17 2018 +0000</div><div>    ThreadedFFIPlugin....</div></div><div><br></div><div>which looks right, and reviewing the first commits, the "Date:" is wrong for Ganea commit...</div><div>$ git log | tail -50 | grep -v Co-authored</div><div><div>commit e69ea5c78ebcf2d6fca6cc8b3c09158790085e33</div><div>Author: Tim Rowledge <<a href="mailto:tim@rowledge.org" target="_blank">tim@rowledge.org</a>></div><div>Date:   Mon Feb 16 16:14:30 2004 +0000</div><div>    Loaded VMMaker 3.7beta 1 for the first time. Appears to be all installed ok.</div><div>commit 55d860554e53d9828b836bebd7ea29cc852c85ef</div><div>Author: George Ganea <<a href="mailto:georgeganea@gmail.com" target="_blank">georgeganea@gmail.com</a>></div><div>Date:   Thu Nov 8 09:52:01 2018 +0200   <<<<<<<<<<<<<<<<</div><div>    initial commit</div></div><div><br></div><div><br></div><div>After hunting around git forums a while I discovered I could do...<br></div><div><div>$ git filter-branch --env-filter \</div><div>    'if [ $GIT_COMMIT = 55d860554e53d9828b836bebd7ea29cc852c85ef ]</div><div><span style="white-space:pre-wrap"> </span> then</div><div>         export GIT_AUTHOR_DATE="Mon Feb 15 00:00:00 2004 +0000"</div><div>         export GIT_COMMITTER_DATE="Mon Feb 15 00:00:00 2004 +0000"         <span style="white-space:pre-wrap">      </span> </div><div><span style="white-space:pre-wrap">       </span> fi'</div><div>Rewrite ab7cbba2d7a8d2f28253c6aa68fa02791bebfca2 (3296/3300) (729 seconds passed, remaining 0 predicted)</div><div>Ref 'refs/heads/last_separate_vmmaker' was rewritten</div><div><br></div><div>and the following shows that worked as expected, with a better commit date for Ganea commit (note the different commit hash)...</div><div>$ git log | tail -50 | grep -v Co-authored</div><div>commit 8c61452847c067e71ace5294256270015d3abf91</div><div>Author: Tim Rowledge <<a href="mailto:tim@rowledge.org" target="_blank">tim@rowledge.org</a>></div><div>Date:   Mon Feb 16 16:14:30 2004 +0000</div><div>    Loaded VMMaker 3.7beta 1 for the first time. Appears to be all installed ok.</div><div><br></div><div>commit a8679450ec9a9fb206ee1bf8586ff5919b0c1487</div><div>Author: George Ganea <<a href="mailto:georgeganea@gmail.com" target="_blank">georgeganea@gmail.com</a>></div><div>Date:   Sun Feb 15 00:00:00 2004 +0000  <<<<<<<<<<<<<<<<</div><div>    initial commit</div></div><div><br></div><div><br></div><div>However that didn't fix visual issue on github. <br>Doing...</div><div>$ git push ben</div>showed the network chart had the same problem for my branch last_separate_vmmaker  </div><div dir="ltr"><div><br></div><div><br></div><div>Digging further I noticed a discrepancy in the CommitDate not matching AuthorDate...</div><div>$ git log --format=fuller | tail -55 | grep -v Co-authored<br></div><div><div>commit 8c61452847c067e71ace5294256270015d3abf91</div><div>Author:     Tim Rowledge <<a href="mailto:tim@rowledge.org" target="_blank">tim@rowledge.org</a>></div><div>AuthorDate: Mon Feb 16 16:14:30 2004 +0000    <<<<<<<<<<<<<<<<</div><div>Commit:     Tim Rowledge <<a href="mailto:tim@rowledge.org" target="_blank">tim@rowledge.org</a>></div><div>CommitDate: Thu Nov 8 08:31:34 2018 +0000     <<<<<<<<<<<<<<<<</div><div>    Loaded VMMaker 3.7beta 1 for the first time. Appears to be all installed ok.</div><div><br></div><div>commit a8679450ec9a9fb206ee1bf8586ff5919b0c1487</div><div>Author:     George Ganea <<a href="mailto:georgeganea@gmail.com" target="_blank">georgeganea@gmail.com</a>></div><div>AuthorDate: Sun Feb 15 00:00:00 2004 +0000</div><div>Commit:     George Ganea <<a href="mailto:georgeganea@gmail.com" target="_blank">georgeganea@gmail.com</a>></div><div>CommitDate: Sun Feb 15 00:00:00 2004 +0000</div><div>    initial commit</div></div><div><br></div><div>So just taking a wild stab...</div><div>$ git branch vmmaker_fix_commit_dates<br></div><div>$ git checkout vmmaker_fix_commit_dates</div><div><div>$ git filter-branch --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'<br></div></div><div>$ git log --format=fuller | tail -55 | grep -v Co-authored </div><div>That looks better.  Lets see how it looks on github.<br></div><div>$ git push ben</div><div><br></div><div>But it seems that doesn't show up in the chart until its merged like this...</div><div>(maybe because the branch starts with an orphan commit.)</div><div><div>$ git branch vmmaker_fix_commit_dates_merge<br></div><div>$ git checkout vmmaker_fix_commit_dates_merge</div></div><div>$ git merge Cog --allow-unrelated-histories</div><div>$ git push ben</div><div><br></div><div><div><img src="cid:ii_johyn77k2" alt="fixed_commit_dates.png" width="472" height="205"><br></div></div><div><br></div><div>One final thing.  Considering how all these VMMaker commit message are going to be intermixed with the existing history, <br>it may be useful to identify at a glance which ones are from VMMaker. Starting one commit back so working on the unmerged history, I did...</div><div>$ git checkout vmmaker_fix_commit_dates</div><div>$ git branch vmmaker_fix_commit_dates_msgs<br></div><div>$ git checkout vmmaker_fix_commit_dates_msgs</div><div>$ git filter-branch -f --msg-filter 'sed "s/^/VMMAKER: /" '<br></div><div>$ git log </div><div>Looks okay</div><div>$ git push ben</div><div>$ git branch vmmaker_fix_commit_dates_msgs_merge</div><div>$ git checkout vmmaker_fix_commit_dates_msgs_merge  <br></div><div><div>$ git merge Cog --allow-unrelated-histories</div><div>$ git push ben</div></div><div><br></div><div>Below you can see how the VMMaker commits are now spread correctly over time.  And also how the VMMaker commit could be identified.</div><div>But even consider that perhaps it would be useful for the MCZ filename to be prepended to the commit message (@peter?), <br>so its easier in the ancient history to exactly match up the Cog branch commits with the VMMaker commits.</div><div><br></div><div>So please consider deleting those crazy single-day-bunched-commits and adopting my "vmmaker_fix_commit_dates_msgs_merge" branch </div><div>$ git remote add ben git@github.com:bencoman/opensmalltalk-vm.git</div><div>$ git fetch ben</div><div>$ git checkout -b my_vmmaker_merged_starting_point ben/vmmaker_fix_commit_dates_msgs_merge</div><div><br></div><div>After that, it might even be possible to squeeze the both Cog and VMMaker branches together so there is <br>just one branch all the way back to ancient history, with the vmmaker commits identified to "VMMAKER" marked commit messages.  <br>Going forward there wont need to be that distinction.</div><div><br></div><div>HTH, cheers -ben</div><div><br></div><div><br></div><div><div><img src="cid:ii_johy4yn91" alt="fixed_commit_dates.png" width="452" height="196"><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>