Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make Hg/Git a remote repo?

I'm a beginner in DVCS (I'm from SVN world) and now that I mastered my own local repo, I would like to set up a remote computer (Amazon EC2) to hold my Web files so I can easily update the web application without FTP or some sorta things

I would like to end up using:

hg push http://hg.domain.com/webserver/hello

or git

git push myAmazon master

What do I have to configure in my remote server (installing Hg/Git) make a folder a repo using init and what should be next?


Maybe I wasn't 100% clear with the answer above, so here is a simple question

I want to replace FTP Upload by using Git / Hg push, how can I accomplish this?

So, let's imagine this scenario:

C:\Inetpub\wwwroot\mybrandNewWebApp is the root of a Site hosted in IIS (this is a remote computer, example: in Amazon EC2), at this directory I started up a repository using git init / hg init.

How can I configure this repository that from my own laptop I can do a push remote to "Uploading my changes"?

How can I configure this repository to be Reachable and Pushable?


Question from reading all comments?

Should I create other directory to be the repo and using upon a good push I could run a script that would actually update the website root directory?

like image 614
balexandre Avatar asked Nov 04 '22 19:11

balexandre


1 Answers

For Mercurial you'll need to set up hgweb the web server that Mercurial comes with, at least in the source-version.

The steps are (possibly incorrect order):

  1. Set up IIS on your server
  2. Download the Mercurial source, and follow a tutorial on which files to make available in the IIS application you set up
  3. Configure IIS to run python programs (Mercurial hgweb is a python cgi script)
  4. Configure hgweb for your hosting needs

There are numerous tutorials on the web, none of them 100% complete in the sense that if you follow them step by step it'll all work, but with a small amount of tinkering it will work.

Here's a couple:

  • Stack Overflow: How to setup Mercurial and hgwebdir on IIS?
  • Mercurial: Publishing Repositories with hgwebdir.cgi

Edit: My answer tells you how to set up a Mercurial web server that you can push to. Since your goal is to update the web server by pushing out your changes, there are other options:

I have the same type of setup, but what I have done is the following:

  1. I created an account online at one of the hosting companies (I use Kiln, but others will easily do)
  2. I then configured the repository I set up there to ping my web server whenever I pushed to the repository. Basically, when I push, the Kiln server will invoke a cgi-script on my own server with some information
  3. That cgi-script of mine that is pinged then executes a normal hg pull -u command in a local clone, and then a ROBOCOPY to mirror everything (except some debug files, and the .hg directory) into the main web site folder

This means that:

  1. I do not have to host my own repositories
  2. I do not need to go through the hassle of setting up my own Mercurial/Git server
  3. I do not need to handle (read: worry about) the security of that setup
  4. I still get push-to-update-website functionality
like image 190
Lasse V. Karlsen Avatar answered Nov 09 '22 10:11

Lasse V. Karlsen