Problem with the LAMMPS repository on GitHub

I am having a problem cloning the repository from https://github.com/lammps/lammps. GitHub will not allow me to create my own duplicate of the LAMMPS repository because a 167MB file (lib/atc/libatc.a) exists in the LAMMPS repository.

My hypothesis is that a large library file (lib/atc/libatc.a) was accidentally added to the main LAMMPS repo and committed. When the mistake was discovered, the file was deleted and the change was committed. This may have occurred on August 8 at commits 4704ced… and d56c9… While this file is no longer visible in the repository, it exists in the repo history, which is causing problems.

Here are the steps I am performing to create my own private LAMMPS repo on GitHub which will track changes from the main repo:

  1. Create my own private repo for unpublished changes to LAMMPS called mylammps.git
  2. git clone --bare https://github.com/lammps/lammps.git
  3. cd lammps.git
  4. git push --mirror https://github.com/cfinch/mylammps.git

Step 4 fails because a file exceeds 100MB. I followed the instructions at
https://help.github.com/articles/duplicating-a-repository

Is there a Git wizard who knows how to fix this problem? Another large file generates a warning: examples/USER/openmp/data.dpd (56MB)

Craig

[...]

Step 4 fails because a file exceeds 100MB. I followed the instructions at
https://help.github.com/articles/duplicating-a-repository

why don't you just fork it?
that works without a hitch.

axel.

Axel,
That would be my first choice, but GitHub does not allow you to fork a public repo and make the fork private. I need to keep my repository private for a while because it incorporates unpublished work from a collaborator. I could fork the LAMMPS repository and not keep it on GitHub, but then I lose the safety of redundant storage in the cloud.

Craig

Axel,
That would be my first choice, but GitHub does not allow you to fork a
public repo and make the fork private. I need to keep my repository private
for a while because it incorporates unpublished work from a collaborator. I

hmm... i thought for a private repository the size restrictions don't apply.

could fork the LAMMPS repository and not keep it on GitHub, but then I lose
the safety of redundant storage in the cloud.

if that is your concern, have you tried bitbucket instead?
https://bitbucket.org/akohlmey/lammps

i set up a second synchronized copy there, after i noticed the problem
with the accidental large file commits to the svn at sandia and found
out that resolving the issue in the git repository would require a
rewrite of the entire history and thus become a big problem for
everybody that has been following the git repository before.

perhaps there you can do a fork into a private repository (never
tried). but at least you should be able to import the repository as is
(i could). i am quite unhappy about this nasty issue with the
accidental commit, but after long consideration decided that this was
the lesser evil, since the removal of the commit from the index and
rewrite of the history would have caused serious difficulties for
everybody following the repository but the most advanced git users.

axel.

For others who are facing the same dilemma, here is what I did:
1. Forked LAMMPS on GitHub into a public repository called cfinch/lammps-CAF
2. Cloned my fork onto my development machine
3. Added the main LAMMPS repo as a second remote called "upstream" on my
development machine
4. Keep the repo on development machine up to date with "git pull --rebase
upstream master"
5. Only push changes to my public GitHub repo when they are ready for
publication
6. Create another remote repository on a second machine strictly for backup
purposes

This isn't quite as good as having a private repo on GitHub for my
pre-publication modifications to LAMMPS, but I agree that almost anything
is better than trying to remove a troublesome commit from the repository
history.

Helpful references I found for this workflow using Git:
http://www.eqqon.com/index.php/Collaborative_Github_Workflow
http://stackoverflow.com/questions/3611256/forking-vs-branching-in-github
http://stackoverflow.com/questions/3903817/pull-new-updates-from-original-github-repository-into-forked-github-repository/3903835#3903835