Suppose I have a "personal" account on multiple Linux instances. Each account has a HOME subdirectory on a local filesystem. Each system has an NFS mount to a shared disk. I have a read-write area on that disk. For the sake of argument, let's say that I access this NFS area via the path /nfs/server/me. What I have done in create a subdirectory on that path called "git", i.e. /nfs/server/me/git . Under the "git" subdirectory, I have created one subdirectory for each major subdirectory in my HOME. In particular, the ~/bin subdirectory. What I have done is basically created /nfs/server/me/git/bin.git and did a "git --bare init" in it. Then, on each system, I basically did:
cd mv bin bin-hold mkdir bin cd bin git init git remote add origin /nfs/server/me/git/bin.git echo "master" >version.txt git add . git commit -m "init master" git push --all git checkout -b $(hostname) mv ../bin-hold . hostname >|version.txt git add . git commit -m "init $(hostname)" git push --all Whenever I change a file, I do the three commands: "git add <filename>", "git commit -m '<reason>'", and "git push". This updates that system's branch in the shared git repository. What I have ended up with is /nfs/server/me/git/bin.git being an "archive/backup" of the files in ~/bin for each of my systems in /nfs/server/me/git/bin.git . Each system's archive is in a separate branch. Now, I am thinking that because "git" uses the SHA-1 of a file as it's identifier, that if I have an exact duplicate of a file in multiple systems, there is really only one physical copy in the /nfs/server/me/git/bin.git. True? Or am I'm confused? Also, if a new system is installed and I get my own HOME on it, then I can do a "git clone /nfs/server/me/git/bin.git" to setup that the ~/bin on that system. I would then do a "git checkout -b $(hostname)" to setup a branch for the new system (followed by a "hostname >|version.txt"; "git add version.txt"; "git commit -m "init $(hostname)" "; "git push --all"). I can then "copy" another server's ~/bin by simply doing a "git pull origin/other-server" while being in the current server's "branch". I can also use something like "git fetch; git diff ..origin/other-server" to see what changes there are between the current server's ~/bin and any other server's ~/bin. Does this sound reasonable? Or am I just being stupid because I should be doing "..." (please specify a better alternative). Also note that I am considering extending this to an "external" archive on my home system, which is accessible via ssh. So I can set up the repository on the url of ssh://[email protected]:/some/path/git/bin.git . I do realize that our security people may have a concern about this, so it is only a possibility. -- John McKown Systems Engineer IV IT Administrative Services Group HealthMarkets(r) 9151 Boulevard 26 * N. Richland Hills * TX 76010 (817) 255-3225 phone * [email protected] * www.HealthMarkets.com Confidentiality Notice: This e-mail message may contain confidential or proprietary information. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. HealthMarkets(r) is the brand name for products underwritten and issued by the insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance Company(r), Mid-West National Life Insurance Company of TennesseeSM and The MEGA Life and Health Insurance Company.SM ---------------------------------------------------------------------- For LINUX-390 subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO LINUX-390 or visit http://www.marist.edu/htbin/wlvindex?LINUX-390 ---------------------------------------------------------------------- For more information on Linux on System z, visit http://wiki.linuxvm.org/
