27 de noviembre de 2013

How to setup you repo GIT and local instance (like for GitLab) and not to fall in despair

How to setup you repo GIT and local instance (like for GitLab) and not to fall in despair

For a while now, while collaborating with several projects, I noticed that having issues to generated and setup the public keys and configuring the access to GIT repositories was giving a bit of a harsh time to lots of people.

And when in comes to recurring problems there’s nothing better suited than a little reference tutorial to blaze the trail. So, let’s get to it!

#1: generate your SSH key-pair and set it up

Step #1: Check if you don’t already have a key pair

Open a terminal and run the following command:

cd ~/.ssh
# Lists the files in your .ssh directory

Check the directory listing to see if you have a file named either id_rsa.pub or id_dsa.pub. If you don't have either of those files go to step 2. Otherwise, you already have an existing keypair, and you can skip to step 3.

Step #2: Generate new SSH keys

To generate a new SSH key, enter the code below in the terminal. We want the default settings so when asked to enter a file in which to save the key, just press enter.

$ ssh-keygen -t rsa -C "your_email@example.com"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.
# Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
ssh-add id_rsa

Now you need to enter a passphrase.

Enter passphrase (empty for no passphrase): [Type a passphrase]# Enter same passphrase again: [Type passphrase again]

Which should give you something like this:

Your identification has been saved in /Users/you/.ssh/id_rsa.# Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com

Step #3: Add your SSH key to GitLab

  1. Go to your account settings:
  1. Now go to the SSH keys section:

  1. Click “Add SSH key”
  1. Give it a title you like (in the “Title” field) and paste your public key in the bigger “Key” field:
  1. Click “Add key” and we are done with loading the SSH public key in GitLab!

Step #4: Check everything worked

Now we should have the key pair generated and set up locally and the public key loaded in GitLab. Let’s now make sure this is the case and that everything went fine.

To achieve such a certainty, run the following command:

$ ssh -T git@git.santexgroup.com

If everything went well, you should see an output like this:

$ ssh -T git@git.santexgroup.com
Welcome to GitLab, !

#2: Some extra hints

Now we have the keys and our GitLab repo set up and ready to work. Now you should be able to clone, push/pull and do all sorts of thing with your GIT repos without being prompted for your username and password. If GIT, after making a command, asks you for your username or password, it means something at some point went wrong.

Go back and make sure you didn’t miss any steps or ask someone for help.

Done with this and want to learn some new tricks? Take a look at this link!

Hope this saves you of annoyances and frustrations in the future!

14 de noviembre de 2013

Python Violations Tool: Check

Si bien seguramente cada uno ya tiene sus herramientas para chequear violaciones en código Python, esta puede ser de utilidad, check.

Correr pep8 y pyflakes en tódos los archivos que queramos:
check.py models.py tests/
Lo que tiene de novedoso/útil, es que sirve para verificar los errores introducidos sólo por nosotros basándose en el VCS, sin tener en cuenta las violaciones ya existentes en el código.

Para GIT, se puede agregar un pre-commit hook, para que aborte un commit si introdujimos errores: use-as-a-git-pre-commit-hook

$ git commit -a -m"Test"
test_module.py:2: redefinition of unused 'logging' from line 1
test_module.py:42:1: E303 too many blank lines (22)
test_module.py:487:1: W391 blank line at end of file
Aborting commit.  Fix above errors or do 'git commit --no-verify'.


# Después de crear el archivo pre-commit:
$ chmod 0755 .git/hooks/pre-commit


5 de noviembre de 2013

List merge conflicts with GIT

Made a merge, particularly, a big one and you want to know which where the files that had conflicts?

Then, this command might come handy:

You can also make a GIT alias this way:

and then use it like this: