Вопрос

Я не видел системы непрерывного контроля версий - такой, которая сохраняла бы изменения в вашем коде по мере их разработки, а не ждала официальной регистрации.Разумеется, изменения будут сохранены как "не зарегистрированные", но они будут сохранены для резервного копирования и просмотра другими пользователями до того, как вы проведете официальную регистрацию.

Я не видел этого и задаюсь вопросом, существует ли это или что-то подобное, и причины, по которым это может быть хорошей идеей, а может и нет.

Прямо сейчас программисты думают об управлении исходным кодом как об интеграции пакетов кода, но почему бы не сделать эти пакеты меньше и интегрировать непрерывно?

-Адам

Это было полезно?

Решение

Прямо сейчас программисты считают управление исходным кодом как интеграцию пакетов кода, но почему бы не сделать эти пакеты меньше и непрерывно интегрироваться?

Я бы сказал, что DVC уже в основном делают это сейчас, не потому, что они децентрализованы, а потому, что Commiting намного быстрее ... с GIT я совершаю гораздо чаще, чем с SVN ... это также делает это простым, чтобы совершить «кусочки» или конкретные кода (используя git add -i или же git gui), и, как правило, гораздо больше сосредоточен на отслеживании строк кода, а не на полных файлах (как «традиционные» венчурные капиталисты

Кроме того, то, как GIT по своей природе работает, означает, как вы сказали: «Изменения будут сохранены как« не зарегистрированные », конечно». Когда вы совершаете, изменения локальные, тогда вы подталкиваете их к удаленной машине с отдельной Команда .. Вы можете совершать каждый раз, когда сохраняете, а затем переоценить их в единый коммит, если хотите.

Что касается инструмента, который делает «непрерывное управление версиями», вы можете сделать это довольно просто с помощью сценария оболочки, что -то вроде ..

while [ 1 ]; do
   git add -a && git commit -m "Autocommit at $(date)";
   sleep 10;
done

Есть сценарий, CACM (GitHub), что делает что -то подобное

CACM] наблюдает за конкретным каталогом и совершает все изменения в автономный репозиторий GIT.

Использовать просто сделать:

cacm --repo dir_of_git_repo --watch dir_to_watch

Я не уверен, почему вы хотели бы сделать это. Я нахожу одну из самых полезных вещей об использовании VCS - это различие того, что я изменил (с последнего коммита). Кажется, что постоянные/автоматизированные коммиты будут просто шумом ..

Так же «E» текстовый редактор Имеет интересную особенность, он визуализирует историю отмены, с разветвлением. Eсть Блог-пост на нем с скриншотами.

Другие советы

Работа постоянного аутосовирования не является задачей для системы версий, а для редактора. Когда вы видите новую версию в системе версий, она должна представлять собой значимое изменение от других версий, а не от каждого полудесят.

У Eclipse есть функция под названием «местная история», которая делает именно это. Он сохранит копию ваших исходных файлов между сохранениями. Это даже отслеживает для вас удаленные папки. Это сохранило мою задницу несколько раз. Вы можете рассматривать локальную историю как контроль версий низкого уровня, который происходит только на вашей локальной машине. Недостатком этого является, конечно, когда вы работаете на другой машине, у вас будет другая местная история.

Вы можете использовать систему управления распределительной версией, например базар, git, РтутныйАнкет Тогда вы можете совершить на месте.

Я видел несколько плагинов на основе inotify для различных DVCS, однако они могут быть только очень умными.Действительно, идеальная вещь, которую можно сделать, - это сохранить репозиторий в файловой системе с копированием при записи, чтобы эти часто детализированные (и неизменяемые) версии файлов хранились вне DVCS.

Как уже говорили другие, я предпочитаю брать на себя множество мелких обязательств.С DVCS вам не нужно беспокоиться о разрыве магистрали или главной ветви, нажимайте только после того, как закончите..не беспокойтесь о токсичных версиях при редактировании файлов.

В Linux я использую ext3cow для хранения моих репозиториев HG / Git.Это дает мне ту функциональность, которую вы описываете.К сожалению, я не знаю ничего подобного, что можно было бы перенести за пределы Linux.Может быть, какая-нибудь сумасшедшая команда придумает что-нибудь подобное на Python.

Этот вопрос поднимался несколько раз раньше (хотя каждый в разном контексте), поэтому, безусловно, необходимость чего-то вроде ext3cow (но переносимого) очевидна.Тем не менее, я бы не хотел такого раздувания в самом DVCS, особенно на огромных деревьях.

Я думаю, вам действительно нужно запросить это у файловой системы, а не у DVCS.

Вы не хотите регистрироваться каждый сдача. Вы хотите проверить атомные наборы изменений, которые могут работать вместе. Вы не хотите добавлять параметр в метод и сохранить, его зарегистрировали (и запуск CI Build), а затем проведете разрыв сборки, потому что вы еще не обновили вызовы для метода.

Ты имеешь в виду что -то вроде Subversion Autoversioning?

Отказ от ответственности: я не говорю, что автоверсион - хорошая идея для развития, или что я бы лично это сделал, но технология существует.

Вы можете совершить каждую строку или персонажа с такими DVC, как GIT, если хотите. Как правило, я думаю, что это отличная идея, чтобы совершать как можно чаще, при использовании DVC, чтобы облегчить поиск проблем с такими инструментами, как Git Bisect. Если бы вы хотели описать эффект, вы могли бы скрепить свой редактор по выбору, чтобы совершить все сохранения ... на практике, хотя я думаю, что это было бы немного.

Некоторые люди установили бы ветвь разработки для этой цели и заставляют разработчики совершать свои изменения, когда они работают, прежде чем объединить его в филиал уровня качества. У вас даже может быть разработчик, который вносит серьезные изменения в его/ее собственном филиале, прежде чем совершить и объединить эти изменения в основную филиал разработчиков. Итак, разветвление может решить это.

Я думаю, что Eclipse делает или использует что -то подобное при каждом сохранении. Это спасло меня несколько раз, когда мой код в итоге был взломан на куски, пытаясь идентифицировать ошибку.

Вот другой подход. Почти каждый день я бегаю в ситуации, когда что -то перестает работать, и я не знаю, почему. Я перемотаю пару минут и проверяю, какие изменения были внесены, а какие файлы. Поэтому я согласен с необходимостью контроля версий Contonouos.

В то же время это правда, что вы не хотите проверять тысячи небольших изменений каждый день в свой репозиторий.

Хорошо, это то, что вы делаете. Вы используете оба, но не смешиваете их. Ваш источник контроля должен использоваться всей командой, и вы регистрируете это время от времени. В то же время вы запускаете какое -то программное обеспечение для локальной личной версии файлов, которое экономит каждое небольшое изменение и позволяет вам использовать информацию.

Вот и все. я использую История исследователя Так как я помогал развивать его, но есть и другие.

Вы можете быть заинтересованы в непрерывной системе управления версиями, разработанной Jetbrains. Это еще не публично, но я показываю некоторые особенности этого в своем основном доме в Jetbrainsday в Malmo: http://new.livestream.com/jetbrains/jetbrainsday1/videos/29348962

В качестве Дэн упомянул, IBM Visual Age IDE сохранил каждую версию, которую вы сохраняли в файле исходного кода. Этот подход не ограничивается IDE, однако; а Декабрь Операционная система приняла аналогичный подход со своим Файловая система версии. Анкет В виртуальных машинах полное имя каждого файла включало номер версии, и каждый раз, когда вы сохраняли файл, была создана новая копия с версией номер один выше, чем ранее наивысший номер.

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

Имея более нескольких лет опыта программирования в Java, я до сих пор помню (с ностальгией) новый подход, который визуальный возраст привлек к процессу разработки. Visual Age имел неправочный подход к исходному коду. Код хранился в реляционной базе данных. Как правило, вы работаете над представлением, показывающим один метод. У вас также был полный представление файла, но вы не будете использовать его так много.

Что касается контроля версий, это генерирует версию с каждым сохранением. Вы можете явно контролировать метод, класс/интерфейс, пакет или весь проект с номером/именем версии. Это также позволило более мелкозернистый контроль над вашим источником на уровне метода. Как только я начал работать с Eclipse, в то время как он унаследовал много функций от Visual Age, и сегодня есть историческая функция, которая экономит локально все «спасение» вашего кода, я не мог не почувствовать, что сделал шаг назад.

Рациональный ClearCase имеет концепцию динамический вид. Анкет В Windows ваше представление о разработке показано в виде сопоставленного диска, но изменения вашего кода сохраняются на стороне сервера, как только вы нажимаете сохранение. Это то, что вы ищете?

Есть, как и следовало ожидать СияниеОтвет выше, это не рекомендация ...

Как насчет Весты?

http://www.vestasys.org/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top