воскресенье, 13 марта 2011 г.

Каждая ветка в отдельной дирректории для Git (как в bzr)

В bazaar есть удобная модель ветвления репозитория: каждая ветка находится в отдельной директории. Это очень удобно, например когда пишется текст/книга/диссертация/диплом и нужно скопировать в главу N абзац, который был в ней пол года назад, но потом был удален по требованиям редактора/таракана в голове/научного руководителя. Или не просто скопировать, а следить за тем, какая она была некоторое время назад, и причесывая текущее состояние работы по ее образу и подобию. В Git такой модели ветвления нет, но есть локальные ветки (в bazaar они тоже есть).  Для того, чтобы можно было использовать такой способ работы представлен следующий скрипт.




Создаем файл git-lb в одной из дирректорий PATH (например в /usr/bin)

#!/bin/sh

if [ $#  -ne 3 ]
then
 echo "use:"
 echo "git lb src.repo dest.repo hash/tag/branch"
 exit 1
fi

src=$1
dest=$2
hash=$3

git clone $src $dest
cd $dest
git co -b lb $hash

Как использовать:
       git lb source dest v1.0
Скрипт склонирует репозиторий source в директорию dest, создаст ветку lb, которая будет указывать на тег  v1.0

update
скрипт можно скачать с репа:
wget --no-check-certificate https://github.com/lysevi/git-ext/raw/master/git-lb

Комментариев нет:

Отправить комментарий