Thanks. I'm not scripting in this case, Just doing it all "by hand" since I only had 5 previous versions to "git-ify". I did the "rm *" in the project directory before the "tar x" to be sure that I would detect any deleted files. I likely did do a "overkill", but I was more concerned that I missed something subtle when I was "converting" my methodology.
On Wednesday, November 14, 2012 9:37:05 AM UTC-6, Konstantin Khomoutov wrote: > > On Wed, 14 Nov 2012 06:57:33 -0800 (PST) > John McKown <john.arch...@gmail.com <javascript:>> wrote: > > > I've just recently started learning about git and other version > > control systems. What I have done in the past is use "tar" to take a > > "checkpoint" of the files in my project subdirectory. So the project > > subdirectory is equivalent to the "working directory" in git. And > > each tar back is kind of like a commit. Well, I now want to start > > using git for this. What I have thought to do is the following for > > each tar backup, starting with the oldest and going in time order to > > the newest backup. > > > > 1) take a tar of the current project before I do a "git init" so that > > I have a "now" time backup. > > 2) rm (delete) all the files in the project subdirectory > > 3) do a "git init" in the project subdirectory. > > 4) for each tar backup, in order from oldest to newest, do: > > 4a) rm (delete) all files in the subdirectory - to remove all > > files from previous restore > > 4b) "tar xf" to restore the contents to the project subdirectory > > for the tar file's "point in time" backup > > 4c) do a "git status" and for each file marked as "removed", do a > > "git rm" to remove it from the index > > git status | awk '$2 = "deleted:" {print "git rm " $3;}' | > > sh 4d) "git add ." to add all the restored contents to the project > > subdirectory. Picks up new and modified files. > > 4e) "git commit" to commit this time (version) > > 4f) "git tag ..." to tag this commit with a label meaningful to me > > 5) the project directory is now set up as well as I can. > > > > I have done this already and it seems to have done what I am > > expecting: use git and have a "commit" for each level of my > > "snapshot" backups which were in tar files. > > > > Any thoughts gratefully received. > > (4a) seems to be redundant as you could just run `tar x --overwrite` > at step (4b). > > Also `git status` is a "porcelain" (user-interfacing) command which is > not too suitable for scripting--you might have better results with > scripting the "plumbing" `git ls-files` command instead, which, for > instance, has the "--deleted" command-line option. > --