А>хочу прогу,чтобы при удалении/добавлении/переименовании файлов автоматически выполняла соответствующие команды контроля версий. Svn, bzr. Есть такие?
Здравствуйте, Аноним, Вы писали:
А>хочу прогу,чтобы при удалении/добавлении/переименовании файлов автоматически выполняла соответствующие команды контроля версий. Svn, bzr. Есть такие?
Для CVS я когда-то делал, но не обновлял для новых средств и не уверен, что нужно. Более того, если буду делать, то только для git. Вот ещё что-то похожее, но оно использует, похоже, ещё более примитивный RCS.
P.S. Когда-то у нас в LN были 4 (прописью: четыре) таких средства, написанных с нуля — по одному у каждого ведущего админа направления. Я до сих пор как вспомню — в лёгком ужасе. Я был единственный из них, кто выложил в публичный доступ
The God is real, unless declared integer.
Re[2]: контроль версий без гемора
От:
Аноним
Дата:
25.10.10 16:40
Оценка:
Здравствуйте, netch80, Вы писали:
N>но не обновлял для новых средств и не уверен, что нужно.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, netch80, Вы писали:
N>>но не обновлял для новых средств и не уверен, что нужно.
А>А в чем причина?
Работает — не трожь... CVS до сих пор живее всех живых. Особенно в BSD мире.
The God is real, unless declared integer.
Re[4]: контроль версий без гемора
От:
Аноним
Дата:
25.10.10 17:16
Оценка:
Здравствуйте, netch80, Вы писали:
N>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, netch80, Вы писали:
N>CVS до сих пор живее всех живых. Особенно в BSD мире.
Здравствуйте, netch80, Вы писали:
N>>>но не обновлял для новых средств и не уверен, что нужно. А>>А в чем причина? N>Работает — не трожь... CVS до сих пор живее всех живых. Особенно в BSD мире.
Т.е. он мёртв вместе с BSD-миром.
Здравствуйте, Аноним, Вы писали:
А>хочу прогу,чтобы при удалении/добавлении/переименовании файлов автоматически выполняла соответствующие команды контроля версий. Svn, bzr. Есть такие?
Может стоит взять версирующую файловую систему? Типа: http://en.wikipedia.org/wiki/NILFS
Здравствуйте, Аноним, Вы писали:
А>из пушки-даже не по комарам. По амебам.
Ты попробуй, очень легковесное и простое решение. Я его для версирования /etc использую.
Здравствуйте, Cyberax, Вы писали:
C>Добавит в репозиторий новые файлы, удалит существующие и закоммитит.
Могу ошибаться, но ведь разве в этом случае не произойдет потеря истории изменения старого файла? Конечно, как вариант, гит может воспринять это как перемещение кода между файлами, поправь меня, если что не так, я не спец по гиту.
Хотя, признаться, сама постановка задачи мне кажется слегка надуманной ведь переименование файла — это не такая частая операция, чтобы ради неё не стоило бы выполнить одну лишнюю команду.
Здравствуйте, Aquary, Вы писали:
A>переименование файла — это не такая частая операция, чтобы ради неё не стоило бы выполнить одну лишнюю команду.
А почему вы все решили,что речь идет о конфигах? Я говорил об исходниках. Прирефакторинге переименования происходят часто. И кстати, я имел в виду не никсы
Здравствуйте, Aquary, Вы писали:
C>>Добавит в репозиторий новые файлы, удалит существующие и закоммитит. A>Могу ошибаться, но ведь разве в этом случае не произойдет потеря истории изменения старого файла? Конечно, как вариант, гит может воспринять это как перемещение кода между файлами, поправь меня, если что не так, я не спец по гиту.
git'у вообще _пофиг_ на файлы, он следит за контентом. Для определения истории файла там используются эвристики.
Так что всё будет как раз полностью ОК.
A>Хотя, признаться, сама постановка задачи мне кажется слегка надуманной ведь переименование файла — это не такая частая операция, чтобы ради неё не стоило бы выполнить одну лишнюю команду.
Неа, задача правильная.
Здравствуйте, Аноним, Вы писали:
A>>переименование файла — это не такая частая операция, чтобы ради неё не стоило бы выполнить одну лишнюю команду. А>А почему вы все решили,что речь идет о конфигах? Я говорил об исходниках. Прирефакторинге переименования происходят часто. И кстати, я имел в виду не никсы
Бери git. Идеально подходит для твоей задачи. С переименованиями работает на "отлично" — мой скрипт прекрасно будет их обнаруживать.
Здравствуйте, Аноним, Вы писали:
A>>переименование файла — это не такая частая операция, чтобы ради неё не стоило бы выполнить одну лишнюю команду.
А>А почему вы все решили,что речь идет о конфигах?
А кто в треде вообще коворил о конфигах?
А> Я говорил об исходниках.
Тут чаще всего про них и говорят
А> Прирефакторинге переименования происходят часто. И кстати, я имел в виду не никсы
Да без разницы, винды или никсы — системы контроля версий чаще всего кроссплатформенны, им без разницы, чью историю сохранять.
Рефакторинг — вообще штука затратная по усилиям, и переименование файла прозначно для системы контроля версий — это самый меньший из гемороев, в которым обычно сталкиваешься. Тут больше внимания и времени уходит на изменение инклудов и/или makefile'ов в остальных исходниках, чем на такую мелочь, как сообщить системе о новом имени.
Здравствуйте, Aquary, Вы писали:
C>>Неа, задача правильная. A>Я там выше отписал — на фоне остальных задач сокращение работы на одну команду почти не даст удобства на фоне остальной трудоемкой деятельности.
То есть? Мой скрипт из 3 строк делает полностью всю работу. Фактически, если туда добавить ещё ввод комментария, то будет полностью VCS из одной команды
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, Aquary, Вы писали:
C>>>Неа, задача правильная. A>>Я там выше отписал — на фоне остальных задач сокращение работы на одну команду почти не даст удобства на фоне остальной трудоемкой деятельности. C>То есть? Мой скрипт из 3 строк делает полностью всю работу. Фактически, если туда добавить ещё ввод комментария, то будет полностью VCS из одной команды
Не, я не про то Я о том, что выбирать систему контроля версий, имея в перечне требований лишь удобство переименования файлов — это несколько странно Причем не переименования файлов в принципе (это многие умеют), а именно в рабочей оболочке (т.е. по сути ставя требования не к системе контроля, а лишь к мини-тулу вроде твоего скрипта).
А вот такие фичи (того же гита), как отслеживание переноса кода между физичесекими файлами — это именно то, что в данном случае человеку и надобно.
Здравствуйте, Аноним, Вы писали:
А>хочу прогу,чтобы при удалении/добавлении/переименовании файлов автоматически выполняла соответствующие команды контроля версий. Svn, bzr. Есть такие?
О, интересная тема! Было бы неплохо поиметь плагин для Total Commander, который может взаимодействовать с системами контроля версий и сообщать им о переименованиях и удалениях файлов (меня интересуют в первую очередь svn и mercurial)
Здравствуйте, Aquary, Вы писали:
A>Не, я не про то Я о том, что выбирать систему контроля версий, имея в перечне требований лишь удобство переименования файлов — это несколько странно
Ничего странного, особенно если перед этим человек помучался с SVN, где переименование глючит чуть менее, чем всегда.
A>А вот такие фичи (того же гита), как отслеживание переноса кода между физичесекими файлами — это именно то, что в данном случае человеку и надобно.
Да
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, netch80, Вы писали:
N>>>>но не обновлял для новых средств и не уверен, что нужно. А>>>А в чем причина? N>>Работает — не трожь... CVS до сих пор живее всех живых. Особенно в BSD мире. C>Т.е. он мёртв вместе с BSD-миром.
Я понимаю, ты не удержался от возможности поехидничать. Но фактическая сторона у тебя неверна.
Здравствуйте, Cyberax, Вы писали:
C>>>Добавит в репозиторий новые файлы, удалит существующие и закоммитит. A>>Могу ошибаться, но ведь разве в этом случае не произойдет потеря истории изменения старого файла? Конечно, как вариант, гит может воспринять это как перемещение кода между файлами, поправь меня, если что не так, я не спец по гиту. C>git'у вообще _пофиг_ на файлы, он следит за контентом. Для определения истории файла там используются эвристики.
Это стандартное рекламное враньё. Если ты переместил файл, даже командой git mv, коммит будет состоять из удаления на старом месте и создания тех же данных на новом. Только если ты командам истории, типа log, дал указание искать перемещения (ключ -M или аналог), он начнёт рассказывать типа "да это ж одно и то же, только сдвинутое". Ни одна из актуальных версий git не создаст коммит именно с содержанием "данные переехали из A в B", даже с указанием этих данных.
Да, поверх этого уже какие-то "эвристики". Но им выполнять работы в разы больше, чем если бы суть коммита была указана явно (как в darcs).
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Aquary, Вы писали:
A>>переименование файла — это не такая частая операция, чтобы ради неё не стоило бы выполнить одну лишнюю команду.
А>А почему вы все решили,что речь идет о конфигах? Я говорил об исходниках. Прирефакторинге переименования происходят часто.
Подумали по очень простой причине: это именно конфиги и аналогичные полупостоянные данные меняются независимо от следящих средств, а средствам назначено только фиксировать факт уже состоявшегося изменения. В случае исходников принято таки оформлять коммиты явно и писать в них, что сделано и почему.
Я бы ещё понял, если бы у тебя была банда невменяемых идиотов низкоуровневых программистов, которые в силу старых привычек или просто общего уровня не в состоянии освоить никакой SCM, и для которых такое средство — хоть какая-то возможность получить историю изменений и состояние на прошлые разы. Но для себя явно придумывать, как сделать такое, вместо нормального подхода... нет, я не хочу больше ничего тут советовать. Это не моё дело — рассказывать, как правильно стрелять себе в ногу.
А> И кстати, я имел в виду не никсы
Это уже твои проблемы, если не указываешь существенную часть контекста. В этом случае собеседники имеют право додумать что угодно и опираться на свои умолчания, а не чужие.
Здравствуйте, netch80, Вы писали:
C>>git'у вообще _пофиг_ на файлы, он следит за контентом. Для определения истории файла там используются эвристики. N>Это стандартное рекламное враньё. Если ты переместил файл, даже командой git mv, коммит будет состоять из удаления на старом месте и создания тех же данных на новом. Только если ты командам истории, типа log, дал указание искать перемещения (ключ -M или аналог), он начнёт рассказывать типа "да это ж одно и то же, только сдвинутое". Ни одна из актуальных версий git не создаст коммит именно с содержанием "данные переехали из A в B", даже с указанием этих данных.
Естественно. Я про это и говорю — история файлов вычисляется эвристиками.
N>Да, поверх этого уже какие-то "эвристики". Но им выполнять работы в разы больше, чем если бы суть коммита была указана явно (как в darcs).
Ну так оно не является проблемой. Являлось бы — добавили бы кэш.
Sapienti sat!
Re[5]: контроль версий без гемора
От:
Аноним
Дата:
26.10.10 09:50
Оценка:
Здравствуйте, netch80, Вы писали:
N>это именно конфиги и аналогичные полупостоянные данные меняются независимо от следящих средств
Каких следяших средств?
N>Но для себя явно придумывать, как сделать такое, вместо нормального подхода...
Я даже боюсь представить, что ты себе навоображал :D Всё, что мне нужно — это автоматически делать svn rename/delete. Можно еще add по заданной маске. Всё.
Здравствуйте, Аноним, Вы писали:
N>>это именно конфиги и аналогичные полупостоянные данные меняются независимо от следящих средств А>Каких следяших средств?
Которые "автоматически выполняют соответствующие команды"
N>>Но для себя явно придумывать, как сделать такое, вместо нормального подхода... А>Я даже боюсь представить, что ты себе навоображал :D Всё, что мне нужно — это автоматически делать svn rename/delete. Можно еще add по заданной маске. Всё.
Не должно быть такого автомата, если ты в состоянии сам понять, что делаешь перемещение или удаление.
The God is real, unless declared integer.
Re[7]: контроль версий без гемора
От:
Аноним
Дата:
26.10.10 11:47
Оценка:
Здравствуйте, netch80, Вы писали:
N>Которые "автоматически выполняют соответствующие команды"
поконкретнее, что за средства...
N>Не должно быть такого автомата, если ты в состоянии сам понять, что делаешь перемещение или удаление.
Здравствуйте, Аноним, Вы писали:
N>>Но для себя явно придумывать, как сделать такое, вместо нормального подхода... А>Я даже боюсь представить, что ты себе навоображал :D Всё, что мне нужно — это автоматически делать svn rename/delete. Можно еще add по заданной маске. Всё.
s/svn/git — и оно там всё из коробки.
Здравствуйте, netch80, Вы писали:
N>Подумали по очень простой причине: это именно конфиги и аналогичные полупостоянные данные меняются независимо от следящих средств, а средствам назначено только фиксировать факт уже состоявшегося изменения. В случае исходников принято таки оформлять коммиты явно и писать в них, что сделано и почему.
.... N>Это уже твои проблемы, если не указываешь существенную часть контекста. В этом случае собеседники имеют право додумать что угодно и опираться на свои умолчания, а не чужие.
Что-то ты всё в кучу намешал — что было, чего не было, о чем подумали и о чем не говорили вообще.
Автор треда вообще говорил про мелкую задачу, не привязанную ни к виду изменяемых файлов, ни к операционке. Постановка вопроса странная, конечно, однако додумывать там ничего не требовалось.
Здравствуйте, Аноним, Вы писали: А>А почему вы все решили,что речь идет о конфигах? Я говорил об исходниках. Прирефакторинге переименования происходят часто. И кстати, я имел в виду не никсы
Используй плагин к ide, который операции с файлами проекта будет регистрировать в сурсконтроле.