Git против SVN |
Здравствуйте, гость ( Вход | Регистрация )
Git против SVN |
Litkevich Yuriy |
26.1.2010, 19:49
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Тут можно потрепаться на эту тему.
Хотя впрочем преимущества Git'а для меня, УЖЕ, стали очевидны. Помимо самой, нормальной, идеи веток и меток. Обнаружил ещё одно существенное преимущество Git'а - компактность хранилища. Есть у меня зеркало проекта AOS, весьма не рационально ребята там структуру организовали, в том числе и бинари там держат. SVN-Зеркало весит = 544 649 КиБ Его Git-клон весит = 144 680 КиБ т.е. более чем в 3,5 раза меньше. |
|
|
Litkevich Yuriy |
23.1.2013, 4:13
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Полезность.
В связи с появлением собственного интернет-магазина, который весь состоит из одних багов. Держу весь магазин под контролем версий на домашней машине. Всё что исправляю - заливаю на сайт, так как на сайте git-хранилища нет, то возникла необходимость заливать на сайт файлы которые изменились. Как такое сделать? А вот так: git diff-tree -r 41735 929ff --no-commit-id --name-only --diff-filter=ACMRT | xargs tar -rf files_to_Site.tar где: 41735 - ИД последней правки залитой на сайт (в примере 5 первых цифр SHA1) 929ff - ИД самой последней правки получится архив files_to_Site.tar содержащий изменившиеся файлы. Замечание: В рабочем каталоге должна быть ветка содержащая последнюю правку (иначе некоторых файлов в ней может не быть. Командуется, разумеется в Git Bash (в виндовозе), чтобы xargs был доступен. работу с хранилищем организовал так: master - основная рабочая ветка toSite - ветка отличающаяся от мастера тем, что содержит всякие метрики (Яндекс.Метрика, Google analitics, на кнопки навешаны сценарии отслеживающие поведения пользователей - "цели" в терминах метрик). Работа: делаю функциональную ветку от mastr-а, работаю, проверяю на локальной машине. Когда уверен в результате поступаю так (изменения разумеется сохранил): 1) переключаюсь на master 2) сливаю функциональную ветку в master. 3) переключаюсь на toSite 4) сливаю функциональную ветку в toSite 5) git diff-tree ... 6) распаковываю архив (из п. 5) на сайт. Тем самым master и toSite идентичны, за исключением оговоренного выше отличия. |
|
|
Текстовая версия | Сейчас: 19.4.2024, 16:37 |