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/

Reply via email to