2009-07-15 5 views
6

Есть ли функция, которая позволяет эксклюзивную проверку в SVN?Subversion Exclusive Checkout и Subversion Plugin для Delphi

Есть ли хороший плагин для Delphi, который позволяет получить доступ через IDE?

+0

Добро пожаловать в Переполнение стека. Для справок в будущем это должно было быть два отдельных поста, а не два вопроса в одном сообщении. –

+0

Хорошо, спасибо за совет. – Acron

ответ

11

У SVN есть концепция «locking», которая примерно соответствует эксклюзивной проверке. Например, в TortoiseSVN это отображается через элементы меню «Заблокировать блокировку» и «Заблокировать блокировку».

JCL содержит эксперта по контролю версий SVN, который работает достаточно хорошо. Помимо других вещей, tt дает вам доступ к функции блокировки из среды IDE.

8

TortoiseSVN может быть added into the Delphi tools menu. Я сам не пробовал, так как я счастлив использовать его в качестве расширения Explorer.

Что касается эксклюзивной проверки, я предполагаю, что вы имеете в виду, что только один человек может редактировать ее за раз? Это не идея Subversion, идея заключается в том, что у вас есть рабочие копии, а затем проверьте свои изменения. Затем он попытается объединить ваши изменения (обычно это работает большую часть времени). Если есть конфликты, вам нужно будет их разрешить вручную.

+0

Как эти конфликты становятся видимыми? Например, если somone изменяет параметр из строки в int. – Acron

+0

Если кто-то делает такое простое изменение, вы не увидите конфликта, он объединит его в commit. Если вы говорите, что у вас есть кто-то, измените строку на int, и вы также измените одну и ту же строку на реальную, тогда у вас возникнет конфликт. Конфликт был бы заметен при совершении, и у вас были бы варианты по его решению. См. Этот url для получения дополнительной информации - http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-conflicts.html – Pauk

+0

+1 для ссылки wiki - я использую этот метод, и это здорово. Я также рекомендую добавить «Открыть папку здесь», которая просто explorer.exe $ PATH ($ EDNAME) Это дает вам доступ ко всему остальному в Черепахе, легко. –

0

Что вы подразумеваете под «эксклюзивной проверкой»? Вы имеете в виду, что после того, как вы выйдете, никто не может проверить?

Это называется блокировкой и подрывной деятельностью (см. Locking), хотя в целом это не рекомендуется, поскольку целью управления версиями является возможность одновременного использования несколькими людьми над версией.

+0

Вы правы. Я имел в виду, что никто не может проверить после того, как я это сделал, пока не зафиксирую, когда блокировка отключена. – Acron

0

Для первой части я использовал Visual Source Safe, который поддерживает блокировку (вы должны проверить перед использованием), SVN имеет команду блокировки, но это противоречит ее концепции, вам нужно немного времени, чтобы привыкнуть к ней, и вы больше никогда не будете использовать команду блокировки.

Для второй части вашего вопроса, TortoiseSVN может использоваться как внешний инструмент, или вы можете заставить его работать с файловым браузером в комплекте с Delphi 2007 и выше, и вы можете использовать IBrowser, которые работают со старыми версиями.

и Subversion add-ins for Delphi подытожить доступные подключаемые модули SVN для Delphi IDE, кроме SourceConneXion, который является коммерческим продуктом.

2

Я считаю, что одна из причин, почему люди иногда запрашивают о блокировке элементов в репозитории Subversion, заключается в том, что они имеют DFM Delphi, сохраненные в двоичном формате, что делает проблему с фиксацией/слиянием.

Альтернативой заменяющим DFM и т. Д. К тексту является использование Scooter Software 'S Beyond Compare.

Beyond Compare написан в Delphi и изначально умеет читать двоичные DFM. Это означает, что тогда становится меньше проблемы (или даже нет), сохраняются ли ваши DFM в Subversion в двоичном или текстовом формате. Beyond Compare V3 также делает трехстороннее слияние, что делает его очень простым слияние нескольких коммитов и т. Д. Даже игнорируя возможность разграничения двоичных DFM, он все еще намного лучше, чем у встроенных инструментов TortoiseSVN. Я могу очень порекомендовать его, и это очень недорого.

В настоящее время единственное, что я заблокировал в нашем репозитории, это библиотеки типа COM (* .tlb и связанные с ними файлы _TLB.pas).

+0

Интересный вопрос о двоичной форме DFM, но есть довольно легко конвертировать в текст по массе. Так как Delphi 1 в папке bin есть файл Convert.exe, который сделает это. Например. 'convert -i -t -s c: \ files \ *. dfm' – Pauk

+0

Кроме того, +1 для Beyond Compare, это отличное приложение. Должен признаться, я предпочитаю его TortoiseMerge. – Pauk

+0

Мы используем собственный инструмент как часть нашего процесса интернализации, который (в настоящее время) требует, чтобы наши DFM оставались двоичными. Использование Beyond Compare делает это наследие ограниченным для нас вопросом. Является ли DFM двоичным или нет, теперь не имеет значения, так как BC будет счастливо сравнивать двоичные и недвоичные версии того же DFM, например. –

1

Об исключительных проверках. Это можно сделать, но это боль и вообще не стоит времени.Если у вас есть dfms, сохраненные как двоичные, преобразуйте их в текст.

Что касается delphi addins, у меня есть сообщение в Delphi addins for subversion.

Я использую jedi jcl и TortoiseSvn.

Есть также Delphi svn и Delphi addin in for Tortoise svn, о которых я знаю.

1

Возможно, я наивен, но почему кто-то хочет пойти на огромную проблему слияния их изменений? Слияние может быть простым вопросом, если программисты редактируют текстовые файлы, содержимое которых легко понять, и поэтому их можно объединить в силу того, что программисты знают значения изменений. Однако, если вы используете SVN с MS Visual Studio, где изменения в одном файле часто происходят в других файлах, о которых вы не знали, и где кодирование информации в таких файлах может быть совершенно неизвестно программистам (кто поэтому не имеют понятия о том, как интерпретировать гораздо меньше, объединять такие файлы) и могут даже быть бинарными, почему бы вам пойти на огромные проблемы и риск одновременного редактирования нескольких людей?

Парадигма блокировки проста. За один раз редактируется только один человек. Слияние никогда не требуется. Программистам не нужно знать кодировки (возможно, двоичных) файлов, которые они даже не понимают, что они изменяют. Никто не может топать на чьи-либо изменения. Блокировка (т. Е. Блокировка по умолчанию) звучит намного предпочтительнее для меня.

Смежные вопросы