January 2016

silviana amethyst
1/31/16

Planning for the workshop

1/15/16

With the upcoming Bertini workshop to be held at Notre Dame, May 23-25 2016, I have a lot to do! Here is a brief list of what I’d like to get done. (it’s an optimistic list)

Can you help? If so, give me a shout! I have opportunities for people of all skill levels, from programming noob to guru, and from NAG noob to guru. I am passionate about the Numerical Algebraic Geometry community and software, and would like you to be a part of it, too!

B2 repo redo

1/4/16

I did it! I nuked the Bertini 2 commit history from Github!

Mistakes were made, lessons learned. The major lesson I learned, and helped teach my team (sorry, team) was to

never rebase a public commit

which, yes, I know, is Git 101. But at the same time, it’s not. The consequences of rebasing or rewriting history do not become clear until you have experienced them – or at least, that was how I learned it.

Here’s how it happened.

In the beginning, there was ignorance. Temporary files and junk got committed to the Github repo for Bertini 2. The files kept getting updated with successive commits. The stupid .DS_Store file from Mac OSX made repeated appearances.

So the download size of the repo kept growing. Cloning a library which essentially did nothing took 300 MB. It was absurd. And .DS_Store caused problems for more than one developer. So I pulled out the big guns.

BFG Repo cleaner was called in. Down flew the giant, removing all instances of .DS_Store from all commits in the official bertiniteam b2 repo. And history changed.

Literally, history changed. My personal development fork, once the source of all my bertini 2 work, de-synced from bertiniteam. Every commit which had been re-written by BFG now appeared to be a duplicate.

So, when I went to do a Pull Request into bertiniteam/b2 in December, I had several hundred repeated commits. They looked duplicate. Except that the hash was different, now. And no amount of hair-pulling could re-sync the repos.

I had several options, all of which amounted to nuking the repo from orbit. So I did. After much discussion, it became clear to me that a total wipe of the repo, and of every dev’s fork, was essential. Again, sorry team!

Over winter holiday, I committed to the nuclear path for the repo. I deleted the entire commit history, deleted my personal fork, and started over. But the benefit is that no .DS_Store ever made it into the repo. There are no XCode bits and pieces that a casual cloner gets when cloning. It’s nice and clean.

I just have to never do it again. Never change history. And you’d think that’d be obvious for me, with time travel being my favorite movie genre. Speaking of, you should watch Timecrimes.