среда, 28 апреля 2010 г.
вторник, 13 апреля 2010 г.
git-svn. Проблема отката svn-репозитория
Введение.
После ошибки при dcommit'е в svn из git-репозитория пришлось откатить svn из бэкапа. Далее git-svn отказывался выполнять dcommit, т к в git-репозитории номер коммита выше, чем в svn (который был восстановлен).Предыстория.
Возникла необходимость совместной разработки. Так как с DVCS я толком знаком не был, решил использовать svn. Просто, удобно. Легко обучить человека, который систем контроля версий не видел ни разу.Разработка под винды, соответственно, выбран консольный svn + tortoiseSvn (лишний раз
svn status
набирать не надо, все такое).В какой-то момент пришлось дорабатывать систему на стенде, где сети уже не было. А VCS хотелось. Выбор пал на git, хотя, наверное, тогда стоило обратить внимание на mercurial.
git-svn.
git-svn прекрасно подцепился к репозиторию в сети, выкачал некоторое количество коммитов и прекрасно работал. До тех пор, пока не добавил нечаянно файл с русским именем.git не испытывал никаких сложностей с этим. Зато на очередном
git-svn dcommit
svn не оценил такой шутки и остановился на коммите с кривым именем файла. Пришлось откатить svn из бэкапа.Во избежание повторения баги этот файл был вычищен из истории (той, что не было в svn, ессно, т к в репозитории теперь номер ревизии ниже, чем считает git).
Дальнейшие попытки выполнить
git-svn dcommit
привели к провалу. git считал, что пора заливать 137 коммит, а svn - 118. Все это происходило в git версии 1.6.3 (текущей в ubuntu 9.10). Попытки исправления метаданных руками не помогли.Решение.
Прочтение man'а помогло не сильно. Решив поискать решение в сети, наткнулся на man новой версии.В новом релизе 1.7.0 появилась прелестная команда
git-svn reset -rXX
позволяющая откатить метаданные до соответствующей ревизии.Итак, запускаем
git-svn reset -r117
, git рапортует, что refs/remotes/git-svn
соответствует ревизии 117 и прочие прелести.После этого можно спокойно делать
git-svn fetch
, чтобы обновить refs/remotes/git-svn
. И git rebase --onto remotes/git-svn <upstream> <branch>
, чтобы перенести ветку на новое дерево.В принципе, все.
Возможно, статья поможет тем, кто попал в аналогичную ситуацию и не смог найти адекватного решения в сети.
P. S. Это то, что не прошло-таки модерацию на хабре..
воскресенье, 11 апреля 2010 г.
суббота, 10 апреля 2010 г.
gitosis на домашней машине.
Поднял сервак gitosis (реализует доступ к git-репозиториям через ssh с контролем доступа). Для этого спокойно воспользовался описанием http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way.
На этой же машине поднят клиент dyndns (ddclient или inadyn). Так, конечно, есть удобная опция "custom dns", позволяющая поставить ttl и обновлять некоторые поля с помощью dyndns-клиента.
Получится запись вида (на своем, подконтрольном домене):
git 60 IN A xxx.xxx.xxx.xxxНо стоит это удовольствие $30.
Есть красивый обходной путь. На бесплатном аккаунте dyndns free привязываемся к домену 3 уровня. Например, my_git_example.dyndns.org. Далее на своей DNS'ке добавляем
Тогда по адресу git.our_domain.tld мы получим доступ к нашему git-репозиторию.
git IN CNAME my_git_example.dyndns.org.
Тогда по адресу git.our_domain.tld мы получим доступ к нашему git-репозиторию.
Вот и все дела ,)
суббота, 3 апреля 2010 г.
Город теней.
Наконец-то, добрались. Прошло уже целых 10 месяцев. Время летит, к сожалению.
Пока еще не рассвело, город теней и лунного света. Как его портит реклама и уличное освещение. Может, успеем в Петропавловскую крепость до рассвета. Было б забавно.
Жалею, что не взяли роллы, народ уже катает. И в МСК, и в СПБ. Хотя, можем успеть побольше музеев посмотреть, поменьше по городу покатать. На все времени не найдешь.
За всеми безумными делами и не замечаешь, как оно утекает сквозь пальцы. Распыляешь его на то, на сё. Прочитал очередной роман Желязны/Бестера/Саймака/et cetera - хорошо. А стоило б почитать "Code complete", patterns, библию java. Оглянуться на c#/mono. Поглазеть на python. Рассмотреть GAE+GWT корпорации злаgoogle.
Чего-то меня совсем не в ту степь занесло. Пока "можно пить и веселиться, не работать и не бриться" ,)
Чего-то меня совсем не в ту степь занесло. Пока "можно пить и веселиться, не работать и не бриться" ,)
С днем геолога =)
Подписаться на:
Сообщения (Atom)