Git против SVN |
Здравствуйте, гость ( Вход | Регистрация )
Git против SVN |
Tonal |
28.1.2010, 8:18
Сообщение
#11
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Цитата(Tonal @ 27.1.2010, 12:04) * У git-а под виндой с русскими названиями файлов полная труба. у меня есть единственный файл - misc/протокол_Микродат.txt, проблемы ни какой не заметил И меня подобных много - клиенты присылают документы с русскими названиями. Все они при импорте из svn стали называться как-то так (цифры от болды): \x56\x98\x21\x74\x54.doc Это на винде. На Linux-е проблем действительно нет. 3) Я, до сих пор, не нашёл способа экспортировать правку/файл из Git-хранилища в произвольный каталог. В SVN'е это делается элементарно. В смысле из удалённого репа выдернуть файлы без образования рабочий копии? Если реп локальный, то вроде как просто копируешь нужное в нужный каталог... Ну ежели часто нужно, можно и скриптик написать - будет выдёргивать нужное и складывать куда указал - git`е ведь всё напрочь скриптуется. Сообщение отредактировал Tonal - 28.1.2010, 8:20 |
|
|
Litkevich Yuriy |
28.1.2010, 11:41
Сообщение
#12
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Если реп локальный, то вроде как просто копируешь нужное в нужный каталог... я веду речь о произвольной правке, а не той что в рабочем каталоге находится.Все они при импорте из svn стали называться как-то так (цифры от болды): а где ты такие имена видишь?
\x56\x98\x21\x74\x54.doc Это на винде. |
|
|
igor_bogomolov |
28.1.2010, 11:57
Сообщение
#13
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
я веду речь о произвольной правке, а не той что в рабочем каталоге находится. git show дает возможность просмотреть тебе любой файл из любой ревизиий любого бранча. Что мешает перенаправить этот поток в нужное тебе место.
Сообщение отредактировал igor_bogomolov - 28.1.2010, 11:59 |
|
|
Iron Bug |
28.1.2010, 12:18
Сообщение
#14
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
3) Я, до сих пор, не нашёл способа экспортировать правку/файл из Git-хранилища в произвольный каталог. В SVN'е это делается элементарно. это минус. а один файл изменений (патч) он генерит? то есть, если в сети нет исходников и надо, к примеру, таскать изменения на флэшке между двумя компами, можно ли экспортировать все изменения с какой-то даты(или версии) по одному каталогу (к примеру) в один файл и на другом компе применить? |
|
|
Litkevich Yuriy |
28.1.2010, 14:23
Сообщение
#15
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
а один файл изменений (патч) он генерит? одним файлом, т.е. там могут быть кучи файлов из разных каталоговgit show дает возможность просмотреть тебе любой файл из любой ревизиий любого бранча. если я хочу помотреть конкретное состояние я увижу кучу клочков кучи фалов. Я не могу посмотреть сами файлы данного состояния.Единственный известный мне способ - это извлечь это состояние в рабочий каталог (соответственно его содержимое изменится) Почему это не удобно: если проект большой, то после возвращения к основному состоянию (например, HEAD master), мне придётся пересобирать весь проект, т.к. файлы изменились. Вроде можно Git'а заставить корректировать дату изменения файла, но пока я в этом направлении не экспериментировал. Если ещё учесть то, что я пользуюсь qmake и не использую shadow build (теневую сборку, т.е. сборка в отдельном каталоге как обычно делается в CMake). То извлекая некое состояние и собирая его, потом, вернувшись к основному, мне всё равно придётся всё пересобирать, т.к. объектники чужие. то есть, если в сети нет исходников и надо, к примеру, таскать изменения на флэшке между двумя компами, можно ли экспортировать все изменения с какой-то даты(или версии) по одному каталогу (к примеру) в один файл и на другом компе применить? я делаю по другому, я создал на флэшке хранилище (для каждого проекта своё). И отправляю туда свои изменения (git push) со станционарной машины, сую флэшку в нетбук и тяну из неё свежее в локальное хранилище на нетбуке.При поездке в командировки приходится править программу на месте у заказчика, все изменения фиксируются в хранилище на нетбуке. Приезжая домой, я отправляю изменения на флэшку, а потом на стационарной машине вытягиваю их и сливаю с какой-нибудь веткой. |
|
|
Iron Bug |
28.1.2010, 15:37
Сообщение
#16
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
вот невозможность извлечь версию в любое место меня напрягает.
вообще, пока я вижу, что самая всё-всё-всё умеющая реализация сорц-контроля - это IBM/Rational ClearCase. но это монстр, неудобный для домашнего содержания. и интерфейс у него крайне специфический. однако, вот там было вообще всё, о чём можно мечтать и ещё куча мелких фич, даже непонятно зачем вообще существующих. я с ним работала на одной работе. в общем, замечательная штуковина, если привыкнуть к странному интерфейсу (впрочем, у IBM он часто весьма загадочен). |
|
|
Kagami |
28.1.2010, 16:08
Сообщение
#17
|
Старейший участник Группа: Участник Сообщений: 601 Регистрация: 2.2.2009 Пользователь №: 523 Спасибо сказали: 101 раз(а) Репутация: 9 |
Можно придумать небольшой костыль по извлечению определенной ревизии в определенное место:
1. Переходим в нужное место. 2. Делаем git clone /path/to/repo (минус: появляется еще одна поддиректория repo) 3. Заходим в эту директорию 4. Делаем git checkout нужная_ревизия 5. Удаляем папочку .git (так как она одна, то не нужно лазить по всей структуре каталогов как в svn) 6. ??? 7. PROFIT! При желании это легко скриптуется на любом удобном языке. |
|
|
igor_bogomolov |
28.1.2010, 16:29
Сообщение
#18
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Можно придумать небольшой костыль по извлечению определенной ревизии в определенное место: Есть вариант попроще... man git-archiveКак делать патчи тоже нашел Цитата igor_bogomolov:16:40:50 /tmp/test $ git format-patch -M HEAD^ man git-format-patch0001-3.patch Сообщение отредактировал igor_bogomolov - 28.1.2010, 16:47 |
|
|
AD |
28.1.2010, 17:29
Сообщение
#19
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Git(ом) не пользовался, а вот SVN-ом пользуюсь. Но посмотрев Юрины картинки интерфейса Git(а), испугался. Уж какой-то он мудреный! Юра об этом уже упоминал, но все-таки. Собственно такой вопрос: если основными действиями, которыми я занимаюсь с SVN - это:
Юра, можешь рассказать, судя по тем простым действиям, что совершаю с хранилищем, как Git улучшит, поможет в этих действиях? И, пожалуйста, поясни по поводу веток и меток: я не очень понял, как так, что в Git нет регистрации каталогов, а только файлов? |
|
|
Litkevich Yuriy |
28.1.2010, 18:28
Сообщение
#20
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 30.1.2025, 4:10 |