Mercurial

From NMÍ Kvikan
Jump to: navigation, search

Mercurial is a free, distributed source control management tool. It efficiently handles projects of any size and offers an easy and intuitive interface.

Contents

Mercurial on Ubuntu

Step 1: Install

Install .ssh

 sudo apt-get install ssh

Download the academy and academy.pub files to your .ssh folder.

Linux packages

sudo apt-get install mercurial tortoisehg tortoisehg-nautilus  

install Mercurial

sudo apt-get install mercurial

Step 2: Key files

put key files (academy and academy.pub) somewhere, probably in ~/.ssh/keys/ (you might want to create this keys directory) note that directories that start with a "." may be automatically hidden by your filesystem, you can see them by typing ls -a example: use the terminal and create a folder called .ssh in the home directory, then within the new .ssh directory create another directory called keys download the (academy and academy.pub) files and place them in the keys directory (you will have to either enable hidden folders, or do this all through the terminal)

sudo mkdir ~/.ssh/keys

Open the directory where the key files where downloaded to and move them to .ssh/keys directory

sudo mv academy ~/.ssh/keys
sudo mv academy.pub ~/.ssh/keys

Step 3: Permissions for the private key

set permissions for your private key so that only the user has read/write access (i.e. sudo chmod go-rw ~/.ssh/keys/academy) your private key permissions could be rw-------, and your public key and config file permissions could be rw-r--r--

~/.ssh/keys$ sudo chmod go-rw academy
~/.ssh/keys$ sudo chmod go-rw-r--r-- academy.pub

Step 4: Setting the port

step 4: set the port that ssh uses to access fab.cba.mit.edu, by appending the following lines to ~/.ssh/keys/config (you might have to create ~/.ssh/keys/config, which is a text file with unix line endings and no .txt extension)

~/.ssh/keys$sudo gedit config

Write this in the config file and save:

host fab.cba.mit.edu
port 846


Write

~/.ssh/keys$ sudo chmod go-rw-r--r-- config

Step 5 Clone the archive

Copy the text (after $ )to the terminal:

~/Documents/FabAcademy$sudo hg clone -e "ssh -p 846 -i ~/.ssh/keys/academy" ssh://hg@fab.cba.mit.edu/academy.2012 academy.2012


Step 6

~/Documents/FabAcademy/academy.2012$ sudo gedit .hg/hgrc

Put this text in the file

[paths]
default: = ssh://hg@fab.cba.mit.edu/academy.2012
[ui]
username = First Last <user@machine.domain>
ssh = ssh -p 846 -i ~/.ssh/keys/academy -C
[hooks]
changegroup = hg update >&2

Step 7

try updating your archive by typing:

~/Documents/FabAcademy/academy.2012$sudo hg pull

you should see a response like this:

if it asks for a password, then it can’t find the key or the key file permissions make it not look like a key (see step 3) if it says something about port 22, then it can't find the config file (see step 4)

To open Mercurial

~/Documents/FabAcademy/academy.2012$sudo hg pull
~/Documents/FabAcademy/academy.2012$sudo hg update


sudo hg add
sudo hg commit -m 'MESSAGE'
sudo hg merge

Push files to server

sudo hg push

And also

Work in process.... to be editied

in addition there are a couple of lines of code to run in the terminal which makes life so much easier:


to setup the config file with host and port:

echo -en "host fab.cba.mit.edu\nport 846" > ~/.ssh/config


to edit the hgrc file (change paths):

echo -en "\n\n[ui]\nusername = First Last <email@mit.edu>\nssh = ssh -i ~/.ssh/academy -C\n\n[extensions]\nconvert =\nfetch =\n\n[hooks]\n\nchangegroup = hg update >&2"  >> ~/Desktop/Archive/.hg/hgrc


This tutorial is very well documented, both for Windows and Mac:



Mercurial Windows

(the public key).

Putty-style key (.ppk format). Download puttygen.exe here: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html.

.ppk format key. Save it as academy.ppk.

c:\Program Files. Run the program Pageant, which will pop up in your task bar. Open Pageant, select "Add key" and give it the academy.ppk file.


become the clone of the archive, and select TortoiseHg->Clone. In Source path type:

 ssh://hg@academy.cba.mit.edu:846/academy

If it complains about not having the public key, that's ok.


Links

Personal tools
Namespaces
Variants
Actions
About Fab Lab
Navigation
Toolbox