xraypy / feff85exafs

Feff8L: Open Source theoretical EXAFS fitting standards
Other
15 stars 7 forks source link

branches #20

Closed bruceravel closed 9 years ago

bruceravel commented 9 years ago

I would like to rewrite history somewhat.

Right now, this repo looks like this:

  o--o--o--A--o-- ... --B  (master)

I would like to change this to

  o--o--o--A     (master)
             \
               o-- ... B (bruce)

where B is the current HEAD and A is bf3a0013bf8f46050965a70ac420a0b97ed0c7f1

After bf3a0013bf8f46050965a70ac420a0b97ed0c7f1, I am the only person who has touched the code. Thus the branch which is at the current HEAD would, then, be my development branch and the master would be fairly close to the form it was in when it was delivered to us by Josh.

To be specific, I want to do the following on a freshly cloned repo:

    git checkout -b bruce
    git checkout master
    git reset --hard bf3a0013bf8f46050965a70ac420a0b97ed0c7f1
    git push origin master -f
    git checkout bruce
    git push origin HEAD

This rewrites history by deleting all commits on master since bf3a0013bf8f46050965a70ac420a0b97ed0c7f1, although that history will be preserved on the "bruce" branch.

It would have been better had I made a branch in the first place, and done my work there. I think that cloning then doing several pull requests was poor practice. What I propose to do will, I think, put this repo in a state that is functionally equivalent to how it would have been had I done the right thing.

But I want another set of eyes to look at what I propose before I do anything.

newville commented 9 years ago

@bruceravel I don't think it's really necessary, but I leave it up to you. In my view, this is all alpha code, and I think no one is expecting stuff to be kept "working" (for some definition of "working"), and that it is completely OK to be experimental. It seem like there's been a lot of progress since June. Are there any changes since June you would want to undo? I don't see anything in that category, but I'm not keeping up with everything either....

Perhaps going forward large changes should be pulled from non-master branches, and only if all unit tests pass? We could consider TravisCI or similar github plugin to auto-run tests. I don't know how practical it is for Fortran, but it might just work.

bruceravel commented 9 years ago

Done as I suggested.

newville commented 9 years ago

Hi Bruce,

I'm slightly confused by this. I was hoping to be able to play with all your changes over the shutdown, especially on Mac OS X, but now I'm left wondering what to be trying out. Is there something here you're not happy with? Should I be using the BruceDev branch, or are you expecting to merge everything back to master soon?

You were the only person working on this for the past six months, so I don't see what difference the branch/merge approach makes, but either way is OK with me. From my POV, the PRs seemed large, but the changes that were needed were large too, so large PRs are inevitable. I just didn't have time to digest them all.

Since there is (at most!) only two of us working on this, I also think it's completely reasonable to merge changes to the master branch.

Going forward, it might be good to lay out a plan of attack, like try to work out what we what the API and usage to be. I think you and I basically agree on this, but it might be good to write it down (on the off chance anyone else ever cares).

--Matt