Re: Sync production with Git

2012-08-08 Thread Matthieu Moy
kiranpyati kiran.py...@infobeans.com writes:

 We want a way to seamlessly sync production and Git.

You should be aware that Git was not designed for this scenario. The
usual flow with Git (and actually with most revision control systems),
is to do the development with Git, then use your build system to
generate a package that can be used in production (e.g. generate a
.tar.gz, or a .jar, or whatever your platform needs), and then install
this package on your production server.

It can be tempting, however, to use your revision control system as a
deployment tool, so that an update on the production server be as simple
as git pull. But in real-life applications, it usually has to be more
complicated: do you need to generate some files after you fetch the
latest version of the source? Do you need to update your database? Isn't
the .git/ directory harmfull here (e.g. do I want the full history
source of my project to be visible worldwide if this is a
webapplication?) ...

If you insist in using Git for deployment, then you should absolutely
stick to it. Whether for deployment or for anything else, trying to send
changes using both Git and other mechanism (e.g. uploading files
directly to a working tree as you did) puts you in trouble 99.9% of the
cases.

In your case, the damage is already done. If I were you, I'd do
something like

do some backup
make sure the backup is OK
think twice will I be able to restore the backup if it goes wrong?
$ git fetch origin
$ git reset --hard origin/master

(actually, if I were you, I'd try reproducing the situation on a
non-production server first)

git fetch will download the revisions from the remote server, which
should be the repository where the version you want to run is located.
git reset --hard will discard any local change (committed or not) you
may have, and set your local working tree to the latest version in the
master branch of the remote repository. You may need a git clean to
remove untracked files too.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Sync production with Git

2012-08-08 Thread demerphq
On 8 August 2012 15:11, kiranpyati kiran.py...@infobeans.com wrote:
 I am new to github,

 Earlier we used to manually upload files on the production through FTP
 although git was present on the production. Due to this now git status shows
 many modified and untrack files.

 To sync that with git we have downloaded all files from production and
 committed to git. Now git has all files same as production.

 We have not pulled on production since last 6 months and because of this it
 shows modified and untracked files.

 Now if we pull on the production there any 100% chances of the conflict
 happened on all modified files. As there are hundreds of modified files
 since last since month. Git pull will show conflict to all those files. In
 that case site will get down and we can not afford this.

 We want a way to seamlessly sync production and Git.

 Can anybody please help me on this?

 Thanks in advance..!!

Try git-deploy.

https://github.com/git-deploy

It contains a full work flow management for handling rollouts from git.

Yves



-- 
perl -Mre=debug -e /just|another|perl|hacker/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Sync production with Git

2012-08-08 Thread demerphq
On 9 August 2012 06:21, demerphq demer...@gmail.com wrote:
 On 8 August 2012 15:11, kiranpyati kiran.py...@infobeans.com wrote:
 I am new to github,

 Earlier we used to manually upload files on the production through FTP
 although git was present on the production. Due to this now git status shows
 many modified and untrack files.

 To sync that with git we have downloaded all files from production and
 committed to git. Now git has all files same as production.

 We have not pulled on production since last 6 months and because of this it
 shows modified and untracked files.

 Now if we pull on the production there any 100% chances of the conflict
 happened on all modified files. As there are hundreds of modified files
 since last since month. Git pull will show conflict to all those files. In
 that case site will get down and we can not afford this.

 We want a way to seamlessly sync production and Git.

 Can anybody please help me on this?

 Thanks in advance..!!

 Try git-deploy.

 https://github.com/git-deploy

 It contains a full work flow management for handling rollouts from git.

Better link:

https://github.com/git-deploy/git-deploy

Yves


-- 
perl -Mre=debug -e /just|another|perl|hacker/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html