Try to see if your bare repo (the one in htdocs) its being updated, try to
clone it (git clone). Seems that there are no problems with the commands
you are using, maybe some unneeded flags.
For the files you need to leave untouched you can create a gitignore file
where you can especify files and folders to be ignored, this files and
folders will be totaly ignored by git. Search for .gitignore
And as a comment, i dont know if using git for this is the best aproach but
if it's working for you, go ahead.
2014-03-20 2:25 GMT-03:00 Senjin Dragon senjin.the.dra...@gmail.com:
Let me sketch out what I'm trying to do. I'm not sure if I can use git for
this or not. I think I can but I'm getting headaches going through the
documentation and experimenting. It's all a bit confusing to me.
I run a minecraft game server and associated client on my machine and a
friends machine who's computer-illiterate. I'm quite actively maintaining
this server by updating the various mods and configuration files that go
with it. These files also have to end up on the clients. On my own machine
I can simply copy it over, rename and delete the files. But it would be
really nice if I can do this on my friends pc as well. That he starts the
game, it checks for updates/changes, downloads and overwrites the existing
files. Doing the renames, deletes and updates for me.
The client however also keeps it's own files among the same files that the
server files end up with. These need to stay the way they are on the client
and cannot be touched. They can be different among clients and contain
personal settings.
The server also has files which shouldn't end up with the clients as
they're server-only.
So to do this, I made a git enabled folder on my machine (using git init)
in which I have just the files that I manage and nothing else. In the same
directory structure as they need to end up on the client and server.
When I make changes, I change them in that directory and run a batch
script (it's all on windows), to commit the changes to the local repository
and I use push to copy them over to another directory as well which is
being served by my webserver.
In the htdocs folder of my apache server I made a DragonCraftRepo
subdirectory and ran git init --bare
I then go back to the folder where I make my changes and do a:
git remote add origin C:/Apache24/htdocs/DragonCraftRepo
The batch file I run after I've done an update is as follows.
(sorry for the date/time localization stuff in there, but it's the only
way I can get a timestamp from the localized windows date/time)
@echo off
cd Repository
setlocal enabledelayedexpansion
for /f tokens=1-7 delims=.:/- %%a in (%date% %time%) do (
if %%b==Jan set MM=01
if %%b==Feb set MM=02
if %%b==Mar set MM=03
if %%b==Apr set MM=04
if %%b==May set MM=05
if %%b==Jun set MM=06
if %%b==Jul set MM=07
if %%b==Aug set MM=08
if %%b==Sep set MM=09
if %%b==Oct set MM=10
if %%b==Nov set MM=11
if %%b==Dec set MM=12
set HH=0%%d
set HH=!HH:~-2!
set YEAR=20%%c
set MONTH=!MM!
set DAY=%%a
set HOUR=!HH!
git add -A
git commit -a --quiet --no-edit -m Update !YEAR!!MONTH!!DAY!!HOUR!
git push origin master
)
endlocal
So far so good, at least I think so. I don't know half of what I'm doing.
I don't even know if those flags I add to the git commands are the right
ones to use for what I want to do. I think they are after experimenting.
But I'm still a bit in doubt about it all.
Then the next part, setting it up so that those files and changes get
updated with the client.
This is where I really get stuck.
First of all, I don't know if I should pull, checkout, clone, fetch or
merge. The trouble is getting the files I pull out to end up in the same
directory the batch file is running from because it wants to make a
subdirectory to check out into. And then the other problem is that there
already existing files which need to stay there and stay untouched. Git
refused to do this at first so after searching all over I found the
solution:
So I go into the client's directory and then:
git init
git remote add origin http://example.com/DragonCraftRepo
git fetch
git checkout -t origin/master
And that worked fine the first time.
It doesn't run a second time.
It did merge the repository's files with the existing files.
Ok, so I think That's it, now it's working. I just need to pull to get
the updates from here on
git pull
Yes, all seems fine.
I make updates in my main working directory, change some of my filenames,
add a little bit here and there, see how things work out
Run the update creating batch. Yes, nice. It sees the changes and pushed
them to the local repository and to the webserver's folder.
Back to the client directory, see if they come over like I intend to, so I
can stick it in the batch file that starts the client.
git pull
And it says I'm already up to date.
I check, none of