On 2014-08-17 11:00-0700 Alan W. Irwin wrote: >>> To make this file proposal concrete, I am suggesting storing the file >>> in PLplot_repo_information/README_svn2git_conversion (a directory and >>> name that are unlikely to be deleted by accident by anyone) that >>> states the commands we used to do the conversion and test it (the >>> contents of the AWIREADME file I sent you plus additional >>> documentation of the subversion branches that were converted to git >>> and then deleted with explicit instructions on how to resurrect each >>> one of them). I think we should also store in that directory the 4 >>> files we used for the conversion, i.e., the two files used with >>> svn-all-fast-export, the convert tags bash script that was sourced, >>> and my standalone bash script to test the results in that directory. >>> Do you see git (or any other) issues with these ideas? >> >> This is fine with me. > > Good.
Hi Hazen: So we were all in agreement that storage (in a file) of the SHA1 id of the HEAD commits from each branch to be deleted would be enough to guarantee branch resurrection, but it turns out that is incorrect. Further reading shows that git automatically garbage collects (deletes) all "unreachable" commits after a suitable default period (usually 90 days, I think). So there are lots of warnings in the results for google searching for the terms <git resurrect branch> that the techniques only work for a while until garbage collection occurs. However, I found <http://stackoverflow.com/questions/1055877/will-a-commit-be-garbage-collected-if-its-refered-to-by-tag-but-not-by-branch> which indicated the part of the git-gc manual which notes "git gc tries very hard to be safe about the garbage it collects. In particular, it will keep not only objects referenced by your current set of branches and tags..." It is good that tags don't get garbage collected, because we have that situation (tag with no branch) for all our release tags. That is git branch --contains v5_10_0 produces no results which means the important commit (corresponding to the plplot-5.10.0 release) pointed to by that tag is not on a branch. So the variation on what was agreed to above to allow anyone to resurrect the historical svn branches that we want to delete is the branch HEAD's should all be tagged (so the garbage collection git monsters don't eat those commits alive) with a tag name something like svn_historical_branch_<branch_name>, then the branch deleted. Note I have already copied (because I had no interest in the history), added, committed and pushed the test_ada subdirectory that was the only part of those historical branches that I am currently aware of that has important use going forward. But if someone else wants to copy something from these historical branches, then branch resurrection should be available to them indefinitely without worrying about garbage collection. So as far as I am concerned, you can proceed with the above process. I could do it locally, but I am not sure how to propagate the deleted branches and corresponding new tags to the official repo. Also, once the official repo is updated that way, how are those deleted branches and new tags propagated to everyone else? Will the next "git fetch" or "git pull" do that automatically? Once you have completed the above process, and the resulting deleted branches and new tags are propagated (see the question above) to my local repo, then I would be willing to write up the resurrection process (and list all the relevant svn_historical_branch_... tags) in the file documenting our conversion from svn to git. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ ------------------------------------------------------------------------------ Slashdot TV. Video for Nerds. Stuff that matters. http://tv.slashdot.org/ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel