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 my changes made it. Not the filename changes, not the new 
files, nor any changes I made inside the old files. None, nada.

And that's where I'm at now. I tried a lot of things I didn't mention here 
but for someone whose never touched git before and is clicking around in 
windows, this all is starting to get a bit too much and at 5am I really 
should go to bed.

Maybe the new day will shed some light on it all, or perhaps one of the 
heroes of this group could help out a little bit.

Please?

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to