Perforce -- кто-нибудь реально пользует?
а что конкретно не так?
судя по простейшему компаризону, перфорс даж покруче свн будет
http://en.wikipedia.org/wiki/Comparison_of_revision_control_...
судя по простейшему компаризону, перфорс даж покруче свн будет
http://en.wikipedia.org/wiki/Comparison_of_revision_control_...
во
более крутая сравнилка
http://versioncontrolblog.com/comparison/CVS/Git/Perforce/Su...
плюсы перфорса:
- чейнджсеты
- пермишены
ну и самое интересное я та и не понял, есть ли там итеративные мерджи, которые в свн 1.5 добавили
хотя есил полноценные чейнджсеты, то наверна такие мерджи и не нужны
более крутая сравнилка
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.
1. Этой суке надо докладываться, что я собираюсь менять. Если я взял файл на редактирование, я не могу его переименовать или там удалить.
2. Эта тварь привязана к структуре каталога. Если у меня есть символьная ссылка на папочку в глубине проекта, с которой я сейчас работаю, то эта гадина не понимает, что она эти файлы на самом деле контролит, а не в первый раз видит.
3. Это недоразумение требует, чтобы я делал переименование в два этапа: integrate + delete. Я за такую концепцию, но не понимаю, почему я должен давать лишние команды или писать свои обертки.
4. Это убожество навводило сущностей мама не горюй. Клиент (это соответствие дерева файлов на сервере и локально ченджлист. Максимум моих желаний — это скачивать часть проекта, а не весь проект. Зачем мне менять взаимное расположение папок локально, я не понимаю.
Что до ченджлистов, то я в любом случае могу закомитить только часть листа. Так что радости от того, что я заранее могу эту часть отобрать, я не нутрю.
5. Говорят (сам не успел проверить нет нормальных плагинов для студии.
2. Эта тварь привязана к структуре каталога. Если у меня есть символьная ссылка на папочку в глубине проекта, с которой я сейчас работаю, то эта гадина не понимает, что она эти файлы на самом деле контролит, а не в первый раз видит.
3. Это недоразумение требует, чтобы я делал переименование в два этапа: integrate + delete. Я за такую концепцию, но не понимаю, почему я должен давать лишние команды или писать свои обертки.
4. Это убожество навводило сущностей мама не горюй. Клиент (это соответствие дерева файлов на сервере и локально ченджлист. Максимум моих желаний — это скачивать часть проекта, а не весь проект. Зачем мне менять взаимное расположение папок локально, я не понимаю.
Что до ченджлистов, то я в любом случае могу закомитить только часть листа. Так что радости от того, что я заранее могу эту часть отобрать, я не нутрю.
5. Говорят (сам не успел проверить нет нормальных плагинов для студии.
Клиент (это соответствие дерева файлов на сервере и локально ченджлистРабочая копия (на стероидах ревизия/коммит. Сущностей ровно столько же, сколько и в аналогах, просто они по-другому называются.
Неудачное, имхо, решение, что сервер знает обо всех клиентах. Из-за этого многие операции тормозят, и серверу нелегко приходится. В плюсе - всегда можно посмотреть над чем работает товарищ (pending changelist но это легко можно сделать, например, в git, расшарив персональные репозитарии readonly.
И еще вещь, которой я не могу понять - зачем нужна возможность иметь более одного pending changelist, если они не могут пересекаться по файлам?
5. Говорят (сам не успел проверить нет нормальных плагинов для студии.
Хм. Я не знаю, что значит нормальный плагин, но у нас при переходе на Perforce проблем со студией не возникло. Основные команды для Perforce из студии делаются без проблем. И, если я не путаю, ничего дополнительно мы не ставили.
может у тебя 2008 студия?
хотя все равно не верится что оно без плагина работает
хотя все равно не верится что оно без плагина работает
хотя все равно не верится что оно без плагина работаетдаже взаимодействие с TFS идёт через плагин, другое дело что мб. какая-то специальная сборка дистрибутива студии, либо perforce сотрудничают в мелкомягкими и те включили их плагин в дистр.
Вопрос в том, зачем эти сущности введены явно: я могу их создать или отредактировать до реального использования, о них знает сервер.
Например, почему бы этому perforce не заставить меня еще настройки сетевого подключения указывать. Этот ченджлист я, мол, пошлю по этому сетевому интерфейсу, а вот этот — по другому и к серверу полезу не по имени, а по ip-шнику. Такая же сущность, как подключение клиента к серверу, тоже ж есть.
Я не понимаю, зачем мне заранее формировать чендж-лист, до того, как я собираюсь нажать Submit. Да еще она норовит разных ченджлистов наплодить. Например, ГУЙ при переименовании файла по умолчанию засовывает его в новый ченджлист.
Да, кстати, еще эта тварь делает diff по всем взятым на редактирование файлам. Понятно, что я на редактирование беру сразу весь проект (ну там всю папку чтоб не бегать с командой p4 edit по каждому файлу. Так вот, я запускаю p4 diff — она мне про каждый файл сообщит, что он был не отредактирован. В ГУИ она на каждый файл создаст окно: либо с реальным дифом либо "файл не был изменен. OK?" И я как баран там должен 30 раз OK жать.
Далее, я не вижу кайфа редактировать соответствие локальных папок дереву каталогов на сервере. Функциональности svn в этом вопросе мне хватало выше крыши.
Например, почему бы этому 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".
И чего не хватает в svn?
Единственная принципиальная разница — distributed или нет.
Как у вас организована разработка что svn недостаточно?
Единственная принципиальная разница — 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 и без этой шняги могу насоздавать рабочих копий сколько угодно по всему винту.
Можно содержать сколько хочешь вокрспейсов. Я в 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 это не скушает.

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