Perforce -- кто-нибудь реально пользует?
судя по простейшему компаризону, перфорс даж покруче свн будет
http://en.wikipedia.org/wiki/Comparison_of_revision_control_...
более крутая сравнилка
http://versioncontrolblog.com/comparison/CVS/Git/Perforce/Su...
плюсы перфорса:
- чейнджсеты
- пермишены
ну и самое интересное я та и не понял, есть ли там итеративные мерджи, которые в свн 1.5 добавили
хотя есил полноценные чейнджсеты, то наверна такие мерджи и не нужны
плюсы перфорса:гм... Не работал с Perforce, оцениваю сравнивалку по SVN и TFS. Честно говоря, не заметил принципиальной разницы между subversion'овскими ревизиями и TFS-ными чейнджсетами. По сути, разница в терминологии. В сравнивалке нормальная поддержка чейнджсетов приписывается только TFS. Что касается разрешений, то там почему-то написано только про вебдав-модуль, хотя svnserve тоже поддерживает per-repository и per-directory разрешения.
- чейнджсеты
- пермишены
Perforce — это неудобно и страннода. Его большой плюс — это permissions на директории. Поэтому у нас его юзают. Но поверх него на клиенте довольно много людей используют git + набор скриптов, которые делают экспорт и импорт из perforce.
юзаем перфорс. Из минусов - нельзя сделать нормально ролбек к ревизии. Нужно ручками файлики откатывать.
юзаем перфорс. Из минусов - нельзя сделать нормально ролбек к ревизии. Нужно ручками файлики откатывать.Нет, это вы не умеете его готовить.
хм. да, оказывается, там есть некий набор действий, который в итоге приводит к ролбеку. Спасибо.
In the 2008.2 release of P4V, a new feature was added to automatically rollback a changelist.
2. Эта тварь привязана к структуре каталога. Если у меня есть символьная ссылка на папочку в глубине проекта, с которой я сейчас работаю, то эта гадина не понимает, что она эти файлы на самом деле контролит, а не в первый раз видит.
3. Это недоразумение требует, чтобы я делал переименование в два этапа: integrate + delete. Я за такую концепцию, но не понимаю, почему я должен давать лишние команды или писать свои обертки.
4. Это убожество навводило сущностей мама не горюй. Клиент (это соответствие дерева файлов на сервере и локально ченджлист. Максимум моих желаний — это скачивать часть проекта, а не весь проект. Зачем мне менять взаимное расположение папок локально, я не понимаю.
Что до ченджлистов, то я в любом случае могу закомитить только часть листа. Так что радости от того, что я заранее могу эту часть отобрать, я не нутрю.
5. Говорят (сам не успел проверить нет нормальных плагинов для студии.
Клиент (это соответствие дерева файлов на сервере и локально ченджлистРабочая копия (на стероидах ревизия/коммит. Сущностей ровно столько же, сколько и в аналогах, просто они по-другому называются.
Неудачное, имхо, решение, что сервер знает обо всех клиентах. Из-за этого многие операции тормозят, и серверу нелегко приходится. В плюсе - всегда можно посмотреть над чем работает товарищ (pending changelist но это легко можно сделать, например, в git, расшарив персональные репозитарии readonly.
И еще вещь, которой я не могу понять - зачем нужна возможность иметь более одного pending changelist, если они не могут пересекаться по файлам?
5. Говорят (сам не успел проверить нет нормальных плагинов для студии.
Хм. Я не знаю, что значит нормальный плагин, но у нас при переходе на Perforce проблем со студией не возникло. Основные команды для Perforce из студии делаются без проблем. И, если я не путаю, ничего дополнительно мы не ставили.
хотя все равно не верится что оно без плагина работает
хотя все равно не верится что оно без плагина работаетдаже взаимодействие с TFS идёт через плагин, другое дело что мб. какая-то специальная сборка дистрибутива студии, либо perforce сотрудничают в мелкомягкими и те включили их плагин в дистр.
Например, почему бы этому perforce не заставить меня еще настройки сетевого подключения указывать. Этот ченджлист я, мол, пошлю по этому сетевому интерфейсу, а вот этот — по другому и к серверу полезу не по имени, а по ip-шнику. Такая же сущность, как подключение клиента к серверу, тоже ж есть.
Я не понимаю, зачем мне заранее формировать чендж-лист, до того, как я собираюсь нажать Submit. Да еще она норовит разных ченджлистов наплодить. Например, ГУЙ при переименовании файла по умолчанию засовывает его в новый ченджлист.
Да, кстати, еще эта тварь делает diff по всем взятым на редактирование файлам. Понятно, что я на редактирование беру сразу весь проект (ну там всю папку чтоб не бегать с командой p4 edit по каждому файлу. Так вот, я запускаю p4 diff — она мне про каждый файл сообщит, что он был не отредактирован. В ГУИ она на каждый файл создаст окно: либо с реальным дифом либо "файл не был изменен. OK?" И я как баран там должен 30 раз OK жать.
Далее, я не вижу кайфа редактировать соответствие локальных папок дереву каталогов на сервере. Функциональности svn в этом вопросе мне хватало выше крыши.
Its depends
1. Этой суке надо докладываться, что я собираюсь менять.Есть такое, но, вроде, больших неудобств не вызывает.
Из плюсов, ты видишь, что файл, который ты хочешь редактировать, уже кем-то редактируется. Иногда полезно.
Плюс ещё ты сразу видишь, какие файлы ты редактируешь.
4. Это убожество навводило сущностей мама не горюй. Клиент (это соответствие дерева файлов на сервере и локально ченджлист. Максимум моих желаний — это скачивать часть проекта, а не весь проект. Зачем мне менять взаимное расположение папок локально, я не понимаю.Чо?
Что до ченджлистов, то я в любом случае могу закомитить только часть листа. Так что радости от того, что я заранее могу эту часть отобрать, я не нутрю.радость в том, что если ты работаешь над одной проблемой, а тебе нужно временно переключиться на другую, то сохранить во временный ченжлист свою предыдущую работу очень удобно. то что ченжлисты не могут пересекаться по файлам — это да, не очень удобно, но лучше что-то, чем ничего.
5. Говорят (сам не успел проверить нет нормальных плагинов для студии.говорят, что ни для каких SCM, кроме VSS'а, нет нормальных плагинов для студии. Тот что есть — вполне терпим, но мы его не юзаем. Так удобнее.
Самое большое неудобство, которое, как и большинство вышеописанных, вытекает из того, что перфорс хранит метаинформацию в файловой системе, заключается в том, что если ты отредактируешь файл, не сказав об этом перфорсу, то его начнёт глючить.
Понятно, что я на редактирование беру сразу весь проект (ну там всю папку чтоб не бегать с командой p4 edit по каждому файлу.Не стоит так делать.
Так вот, я запускаю p4 diff — она мне про каждый файл сообщит, что он был не отредактирован. В ГУИ она на каждый файл создаст окно: либо с реальным дифом либо "файл не был изменен. OK?" И я как баран там должен 30 раз OK жать.Открой для себя команду "revert unchanged files".
Единственная принципиальная разница — distributed или нет.
Как у вас организована разработка что svn недостаточно?
И чего не хватает в svn?ты меня спрашиваешь?
Единственная принципиальная разница — distributed или нет.
Как у вас организована разработка что svn недостаточно?
ты грига спрашивай
говорят, что ни для каких SCM, кроме VSS'а, нет нормальных плагинов для студии. Тот что есть — вполне терпим, но мы его не юзаем. Так удобнее.vss - гавно и плагин для него убог.
Очень хороший плагин для TFS (кстати, он тоже докладывается серверу об изменённых файлах).
Для svn есть вполне юзабельный плагин, с основными действиями справляется достаточно хорошо (хотя не хватает работы с trac-ом).
vss - гавнону это-то никто не спорит
плагин для него убог.что значит убог? не позволяет делать что-то что позволяет делать нативный клиент?
или там хуже это делается?
что значит убог? не позволяет делать что-то что позволяет делать нативный клиент?Обычно для чего-либо большего чем внесение изменений и check in приходилось держать постоянно запущенным клиент.
или там хуже это делается?
Есть такое, но, вроде, больших неудобств не вызывает.
Каждый нужный файл отыскивыать в файловой системе и забирать на редактирование — у меня это вызывает неудобство. Если ему так надо подсказки, я был бы рад, если бы он отслеживал, у каких файлов я снял read-only флаг.
Плюс ещё ты сразу видишь, какие файлы ты редактируешь.
А смысл? Они у меня в студии и так открыты.
Чо?
Я говорю, что сущность workspace лишняя в моем понимании. Я не знаю, зачем она нужна. В SVN ничего такого нету. Кроме того, я не понимаю, почему эту сущность местами perforce называет client (например, переменная среды p4client как раз устанавливает имя воркспейса, с которым ты работаешь).
Не стоит так делать.
Почему? Чтобы не вводить в заблуждение коллег относительно того, что я редактирую? Кстати, я работаю в персональном бранче.
Открой для себя команду "revert unchanged files".
Отлично. Я либо должен согласиться брать файлы по одному, а не целыми папками (см. выше либо имею следующую фигню. Вместо нормального дифа я должен выполнить revert unchenged, потом diff, потом опять взять файлы на редактирование.
В любом случае, почему я должен как-то компенсировать кривость diff`а? Или есть какой-то сакральный смысл докладываться о неизмененных файлах тоже? Помнится, я читал о принципе "молчание - золото" для программ.
Есть мнение, что svn сильно тормозит на update и commit при большом числе файлов. Понятно, что perforce тут будет куда как более шустрый, поскольку предполагает, что я без его ведома ничего не делал.
Каждый нужный файл отыскивыать в файловой системе и забирать на редактирование — у меня это вызывает неудобство. Если ему так надо подсказки, я был бы рад, если бы он отслеживал, у каких файлов я снял read-only флаг.А плагин для студии не умеет это делать при попытке изменения файла? (как это делает TFS)
Я говорю, что сущность workspace лишняя в моем понимании. Я не знаю, зачем она нужна. В SVN ничего такого нету. Кроме того, я не понимаю, почему эту сущность местами perforce называет client (например, переменная среды p4client как раз устанавливает имя воркспейса, с которым ты работаешь).А он позволяет содержать на одном компе несколько воркспейсов?
Можно содержать сколько хочешь вокрспейсов. Я в svn и без этой шняги могу насоздавать рабочих копий сколько угодно по всему винту.
Каждый нужный файл отыскивыать в файловой системе и забирать на редактирование — у меня это вызывает неудобство.
Зачем в системе? Прямо из студии можно. И не обязательно ставить для этого плагин. Пишешь свой собственный макрос:
Imports EnvDTE
Public Module Perforce
Sub Edit
Shell("p4 edit """ + DTE.ActiveDocument.FullName + """", AppWinStyle.Hide)
End Sub
Sub EditSel
Dim item As SelectedItem
For Each item In DTE.SelectedItems
Dim prji As ProjectItem
prji = item.ProjectItem
Dim i As Integer
For i = 1 To prji.FileCount
Shell("p4 edit """ + prji.FileNames(i) + """", AppWinStyle.Hide)
Next
Next
End Sub
End Module
Добавляешь в конекстное меню редактора макрос Perforce.Edit, а в контекстное меню Project/Solution->Item макрос Perforce.EditSel, и всё. Теперь у тебя по правому клику в открытом документе и на выделеных итемах в солюшене, можно будет сделать check out прямо из студии.
upd: Если не знаешь, как добавлять, и куда совать макросы, почитай здесь.
А смысл? Они у меня в студии и так открыты.То есть, ты пока файлы не закоммитишь, в студии их не закрываешь?

Почему? Чтобы не вводить в заблуждение коллег относительно того, что я редактирую?Чтобы не было соблазна редактировать всё подряд. При прочих равных, чем меньше файлов поменяешь, тем лучше. Ну, это, конечно, моё мнение.
В любом случае, почему я должен как-то компенсировать кривость diff`а?А в чём заключается кривость diff'а?
Если юзаешь GUI, то будь готов нажимать Ok по поводу и без. :-)

Понятно. Тебе удобно редактировать поменьше файлов и видеть, какие именно файлы ты редактировал. Кайфа ни того ни другого я не понимаю.
Кривость гуишного диффа в том, что он открывает файлы по одному. На неизмененные файлы выдает сообщение и кнопочку ОК. Ну эт может в ГУИ так принято, хрен с тем, я не гордый, я из консоли могу запустить. НО ТУТ ТОЖЕ ЖОПА. Консольный p4 diff на каждый неизмененный файл печатает строчку с именем файла. Если у меня 100 файлов на редактироовании, так у меня в диффе на халяву уже 100 строчек фигни бессодержательной. Да и формат самого диффа мне не нравится. Есть подозрения, что patch это не скушает.
Посмотрел \ спросил как у нас ставили. Мы просто ставили дистрибутив Перфорса, который нам сам в 2005 студию автоматически воткнул свой плагин, чтобы студия с ним корректно работала.
И еще вещь, которой я не могу понять - зачем нужна возможность иметь более одного pending changelist, если они не могут пересекаться по файлам?Хранилища же запирают время от времени. С несколькими changelist-ми ты можешь не ждать разрешения на влив, а начать работать над другой, ортогональной, задачей.
Нет уж, или по честному, как в git, hg, bazaar и куче других, или у меня будет по клиенту на каждое изменение.
Кривость гуишного диффа в том, что он открывает файлы по одному. На неизмененные файлы выдает сообщение и кнопочку ОКRevert unchanged files помогает не только здесь, но и в ситуации, когда ты изменил несколько файлов, а P4 не доложил (скажем, за пределами Студии). Просто открываешь все файлы директории для редактирования (open for edit а затем - revert unchanged files.
Оставить комментарий
Realist
Пересел на Perforce С SVN и мучаюсь ощущением, что Perforce — это неудобно и странно. Скажите, я чего-то не понимаю, просто не привык или это правда убожество?