April 17th, 2009

nepal

git

Выношу из комментов.

Если кто вдруг думает, что пользоваться системой контроля версий трудно, что надо как-то там учиться этому, тратить время... то вот вам более чем краткое введение в git:

$ cd myprog

$ ls
a.c b.c b.h Makefile

$ git init
Initialized empty Git repository in /home/kir/myprog/.git/

// это надо, чтобы гит знал, чьи коммиты
$ git config --add user.name "John Doe"
$ git config --add user.email "john@doe.org"

// добавляем файлы
$ git add a.c b.c b.h Makefile

// создаём коммит
$ git commit -as
// открывается редактор, пишем что-то вроде initial commit,
// выходим с сохранением
Created initial commit 75458fd: initial commit
4 files changed, 12 insertions(+), 0 deletions(-)
create mode 100644 Makefile
create mode 100644 a.c
create mode 100644 b.c
create mode 100644 b.h

// смотрим лог
$ git log
commit 75458fdd6f132014b20c5019afd660d8703a78a2
Author: John Doe <john@doe.org>
Date: Fri Apr 17 13:51:31 2009 +0400

initial commit

Signed-off-by: John Doe <john@doe.org>

// делаем правку
$ vim a.c

// смотрим правку
$ git diff
diff --git a/a.c b/a.c
index 1cc11f7..c3e3aa2 100644
--- a/a.c
+++ b/a.c
@@ -2,5 +2,6 @@
#include "b.h"

 	int main(void) {
+	printf("Entered main()\n");
 	return b();
}

// коммитим правку
$ git commit -s a.c
// описываем правку, выходим с сохранением

// снова смотрим лог
$ git log
commit 2cd08484a3a192b7234bbe9da672e8bd054f1606
Author: John Doe <john@doe.org>
Date: Fri Apr 17 13:54:37 2009 +0400

main(): added debug printf

Signed-off-by: John Doe <john@doe.org>

commit 75458fdd6f132014b20c5019afd660d8703a78a2
Author: John Doe <john@doe.org>
Date: Fri Apr 17 13:51:31 2009 +0400

initial commit

Signed-off-by: John Doe <john@doe.org>

Ну и так далее. git очень мощная штука, распределённая, быстрая, крайне удобная. Впрочем, лучше вот посмотрите кино — создатель про него рассказывает очень задорно и познавательно. Кстати, и SVN там тоже упоминается. Torvalds on Git

nepal

code wtf

Вот такой эпический код сегодня встретился:

        assert '(( 1 <= level <= 5))'


В комментах желающие могут рассказать, почему это не работает. Завтра расскриню.

Да, это написано на bash, но на С будет примерно так же.