Машина времени против контроля источников?


18

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

Скачал Tornise SVN и использовал его для создания локального хранилища на моем жестком диске. Я использую его уже 2 дня, но я должен сказать, что его использование на самом деле более хлопотно, чем просто копирование проекта вручную в проводнике. Конечно, вы храните только постепенные изменения, но с дешевыми дисками сегодня я не могу сказать, что это аргумент, когда у вас есть только небольшие проекты. Я не нашел быстрого способа просмотреть старые версии моих файлов.

То, что я хочу, - это бесконечная отмена, которая полностью прозрачна, когда я кодирую, если я сохраняю файл, мне нужна резервная копия. Я не хочу проверять, регистрироваться и даже не заводить меня на перемещение файлов. Я не пробовал Time Machine для OS X, но похоже, что это именно то, что я ищу.

Существует ли такая программа для Windows? Предпочтительно бесплатно и с какой-то системой тегов, чтобы я мог пометить метку времени, когда проект работает и т. Д.

Может стоит добавить, что я в основном работаю один на одном компьютере.

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


4
Основное различие между SCM и Time Machine заключается в том, что с SCM вы явно фиксируете и вы можете получить все свои коммиты, тогда как с помощью Time Machine резервные копии выполняются автоматически (ежечасно), а некоторые теряются со временем: только одна резервная копия в неделю сохраняется навсегда ( Вы не выбираете, какой из них).
mouviciel

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

1
Проблема с любым управлением версиями заключается в том, что если вы являетесь единственным разработчиком для объекта, очень трудно остановить файлы, которые вы не добавили в систему управления версиями. Наличие отдельного сервера сборки работает, но гораздо больше требует настройки. Простое резервное копирование ВСЕХ файлов может быть безопаснее.
Ян Рингроз

Ответы:


39

Я думаю, что вы действительно недооцениваете преимущества контроля источников. Как отметил Дастин, есть ветвление, слияние и обмен. Кроме того, использование системы контроля версий позволяет легко определить, когда каждая строка в вашем коде изменялась в последний раз. SVN также может отслеживать историю файлов, даже если они переименованы или перемещены в другой каталог. Объединение может даже решить проблемы, даже если вы всего лишь один разработчик, поскольку вы можете работать на своем настольном компьютере, ноутбуке и других компьютерах, не беспокоясь о перезаписи изменений.


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

@JohnB SVN имеет функцию под названием «Автоверсия». Он позволяет вам монтировать ваш репозиторий как стандартную папку WebDAV, и каждый раз, когда вы сохраняете файл, он выполняет коммит. Если вы сохраняете достаточно часто, то вы можете эффективно вернуться ко времени, когда вы сохранили файл. Это не так детально, как в VS.Net, где вы можете нажимать Ctrl + Z для каждого символа, но в любом случае вам следует сохранять каждые 10 минут. Если бы вы были одним разработчиком, работавшим над проектом, он, вероятно, сработал бы, хотя у меня нет большого опыта в этом. ( svnbook.red-bean.com/en/1.7/svn.webdav.autoversioning.html )
Кибби,

Спасибо, Кибби. Я видел пост VonC об этом ниже. Это один из немногих вариантов, которые я видел, и единственный бесплатный. Ниже приведены также некоторые специальные продукты, которые не требуют настройки сервера управления версиями, что приятно. Но они стоят денег и выглядят так, словно у них больше наворотов, чем мне нужно (или одному из них нужна работа с пользовательским интерфейсом). Самым близким, что я видел, к тому, что я хочу, является DropBox с его интеграцией в контекстное меню Windows Explorer. По умолчанию он сохраняет 30-дневную историю, и если вы заплатите за функцию Pack Rat, она сохранится на неопределенный срок. Но это облачное приложение.
Ваймс

21

Это было бы автоматическое управление версиями (чтобы остаться с Subversion):

Автоверсия - это функция, с помощью которой клиенты WebDAV могут писать на сервер DeltaV (например, mod_dav_svn), а сервер выполняет коммиты в фоновом режиме. Это означает, что если вы используете Apache httpd в качестве сервера Subversion, то большинство современных операционных систем могут монтировать репозиторий в качестве общего сетевого ресурса, а пользователи, не являющиеся техническими специалистами, получают «прозрачные» версии бесплатно. (Конечно, технические пользователи все еще могут использовать клиенты Subversion для изучения истории репозитория.)


2
Определенно хороший ответ и решение, подобное тому, что хочет OP, регулярное резервное копирование без явных фиксаций.

12

Не путайте решения для резервного копирования с контролем версий. Они оба важны, но имеют разные цели. Что вам действительно нужно делать, так это использовать контроль версий (svn, cvs, mercurial, git и т. Д.) И автоматически создавать резервные копии где-то еще, кроме вашего жесткого диска, предпочтительно вне сайта (платный хост или S3). Или перейдите на 100% дистанционно и найдите кого-то, кто сможет разместить ваше репозиторий SVN Я бы предложил Unfuddle . Вы можете установить бесплатное репозиторий SVN без особых проблем.

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



6

Полное раскрытие: я работаю на Altaro Software.

Если вы хотите Time Machine для Windows, тогда найдите «Упс! Backup 'BETA list

Мы являемся новой компанией-разработчиком программного обеспечения Altaro Software и разрабатываем программный продукт для резервного копирования / контроля версий, который называется «Упс! Резервный'. К сожалению! Резервное копирование представляет собой гибрид традиционного продукта для резервного копирования и облегченной системы контроля версий. К сожалению! Резервное копирование автоматически отслеживает изменения в документах, фотографиях и других файлах и позволяет вам вернуться в любой момент времени. В определенной степени это эквивалент Time Machine для Windows.

Обратите внимание, что я сказал облегченный контроль версий - это не тот продукт, который предназначен для замены правильного продукта контроля версий. Наши разработчики используют SVN и Oops! Резервное копирование одновременно. Они используют VSN для правильного контроля версий с функциями возврата / вывода, но они также используют Ой! Резервное копирование моментов Oops, которые они иногда получают, и им нужно быстро найти предыдущую версию файла без необходимости проходить через весь процесс проверки.

Мы вложили много средств в пользовательский опыт и на вкус - поскольку мы понимаем, что eyecandy НЕ подразумевает пользовательский опыт.

Мы скоро будем в бета-версии и ищем бета-тестеров - каждый желающий может попробовать его на http://www.altaro.com/download.php . На этих страницах вы также можете увидеть скриншоты продукта.

Ваши мнения и конструктивная критика будут высоко оценены (хотелось бы услышать плохие вещи ... больше, чем хорошие вещи)

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

Простите за пробку!

Дэвид Велла - Дэвид@altaro.com


Я думаю, что список возможностей - очень хорошее начало. Поддерживает ли он полное восстановление (например, в случае аппаратных сбоев; требование Time Machine для Windows, если вы спросите меня)? И, хотя немногие могут беспокоиться: может ли он обрабатывать несколько (избыточных) резервных дисков? Или, если нет, каким-то образом скопировать полную резервную копию (например, Time Capsule, но которая занимает много времени)? Для следующих выпусков: я бы порекомендовал плагины для популярного программного обеспечения, которое требует особого использования файловой системы. Как и для почтовых программ: для поиска и восстановления сообщений, не зная, как их можно найти в файловой системе. А: локализация?
Арьян

Привет, Арджан - нет, он не поддерживает создание образов дисков (а-ля Acronis & Ghost) и, честно говоря, я не уверен, стоит ли нам идти по этому пути - мы увидим, основываясь на отзывах. Уже существуют хорошие продукты, которые вы можете использовать для чистого металла, поэтому мы не будем сейчас выходить на этот рынок и сосредоточимся на выпуске Ой! Сделайте резервную копию лучшего решения на рынке. Вместо этого мы концентрируемся на части управления версиями - на реальном контенте, а не на битовом слое. На сегодняшний день у нас есть предварительный просмотр с учетом приложений, так как мы поддерживаем предварительный просмотр файлов MS Office, изображений, текстовых файлов и т. Д. - мы продолжим добавлять это.
Дэвид Велла

Я сказал в определенной степени, что это эквивалент машины времени. Из того, что я слышал, самым близким к Apple Time Machine является Rebit - никогда не тестировал сам. Английский только сейчас - но мы готовы начать локализацию. Если вы хотите попробовать это в бета-версии, пришлите мне электронное письмо :) Дэвид Велла из Мальты (Европа) david@altaro.com
Дэвид Велла

После прохождения через некоторые комментарии , оставленные джина «Кэндис» ака «Салам»: +1 для раскрытия ;-) ( superuser.com/questions/7423/time-machine-for-windows/... / stackoverflow.com/questions/274948 / time-machine-for-windows /… / serverfault.com/questions/1918/… )
Арджан,

4

Решение, очень похожее на Time Machine, было представлено в немецком журнале c't некоторое время назад. Хотя сама статья доступна для 60 центов, сами сценарии бесплатны: http://www.heise.de/ct/ftp/06/09/126/

В основном он использует rsync для резервного копирования ваших данных на внешний диск в формате NTFS. С каждой новой резервной копией она только сохраняет новые файлы на резервный диск, но создает жесткие ссылки на все остальное. Фактически вы увидите полную структуру папок для каждой резервной копии, но будете использовать только пространство, необходимое для первой полной резервной копии + любые изменения, которые произойдут позже.

Это не так красиво, как Time Machine, но это та же технология (насколько я знаю, Time Machine также использует rsync) под крышками.


2

Time Machine - это обычное решение для резервного копирования и восстановления. Используйте любое средство резервного копирования Windows с автоматическим ежедневным инкрементным резервным копированием, и вы получите почти то же самое. Однако, даже если возможно восстановить предыдущие (ежедневные) состояния, это может быть не самым быстрым решением.


2

SVN не очень эффективен для индивидуальных разработчиков. Проверьте BZR . Я использую BZR для всех моих личных проектов и моего домашнего каталога, использую SVN только для большого рабочего проекта.


Интересный. Используете ли вы его на каком-либо сервере, даже локальном, или он будет работать только с локальной файловой системой?
PhiLho

1
«SVN не очень эффективен для индивидуальных разработчиков». Это довольно общее заявление, не правда ли?
Мьюджексон

1
Джако, научи себя альтернативам, и ты согласишься.
Дастин Гетц

1
Фил, всегда есть локальная копия репозитория, чтобы все было быстро и чтобы избежать проблем с разрешениями, но при необходимости можно принудительно / синхронизировать что-либо удаленное (общий доступ, веб-сайт, FTP, возможно, больше), если / когда вам нужно работать с командой. читать сайт.
Дастин Гетц

Основное различие между BZR и SVN заключается в том, что BZR распространяется. Поскольку OP в основном работает в одиночку на одном компьютере, я не уверен, что преимущества распределенного управления исходным кодом перевесят дополнительную сложность в этом случае.
Редтуна

2

Genie Timeline 2.0 вышла на прошлой неделе.

Я знаю, я знаю, "еще один штекер шкалы времени!" ... но это не так.

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

Более того, почти все функции доступны в новой бесплатной версии Genie Timeline.

Технические характеристики Genie Timeline 2.0 Free: http://www.genie-soft.com/Free_products/free_timeline.aspx

Загрузить: http://download.cnet.com/Genie-Timeline-Free/3000-2242_4-10967059.html?tag=mncol

Платные версии продукта добавляют шифрование, сжатие и автоматическую очистку старых резервных копий.

РАСКРЫТИЕ ИНФОРМАЦИИ: Я был лидером проекта по версии 2.0


+1 за раскрытие. Смотрите также Time Machine для Windows, которая, я думаю, является лучшим местом для продолжения этого вопроса.
Арджан

1

Что вы хотите сделать из системы контроля версий или нескольких резервных копий?

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

Если, как предполагает Дастин Гетц, это может быть связано с управлением конфигурацией, ветвями и т. Д., То рекомендации SVN или других программ контроля исходного кода лучше моих предложений.

Таким образом, не использовал его, и не бесплатно ($ 32), но поиск в Google обнаружился

TrackMyFiles - http://www.trackmyfiles.com/en/features/

  • Отслеживает и сохраняет изменения в файлах автоматически
  • Позволяет просматривать и восстанавливать старые версии файлов
  • Важные версии файлов могут быть помечены явно
  • Совместим с большинством типов файлов, таких как документы Microsoft Word® и презентации Microsoft Powerpoint®
  • Эффективное хранение изменений с помощью алгоритма дельта-сжатия
  • Интегрирован в Microsoft Windows® File Explorer для бесперебойной работы

60-дневная пробная версия доступна, согласно этому веб-сайту

Или, если вы используете Vista, есть встроенная теневая копия. См. Http://en.wikipedia.org/wiki/Shadow_Copy.


1

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


1
Зависит. Это соответствует тому, что попросил ОП. На мой взгляд, есть две причины для контроля исходного кода - управление конфигурацией и защита от проблем / глупостей, связанных с разработчиками (об этом я много знаю). Если первая проблема, я согласен с вами. Если второе, все эти решения подойдут.
Архетип Павел

1

Несколько мыслей:

Вам может понравиться SVK, который, похоже, подключается к SVN. Я сам не пробовал, но выглядит интересно.

http://svk.bestpractical.com/view/HomePage

Такие инструменты, как Trac, обеспечивают приличный просмотр репозитория SVN и, возможно, заслуживают внимания.

Если у вас возникли проблемы с поиском правильного жаргона для поиска, найдите «снимки». Вы также можете захотеть встроить какой-то процесс архивации в свою систему сборки, чтобы каждый раз, когда вы запускаете make, вы автоматически получали снимок (или то, что имеет смысл для вашей ситуации).


1

У меня есть cron (поиск в Google и выберите тот, который вам нравится), а затем сценарий командной строки для запуска pkzipc на моих папках souce каждые пару часов. как только я связал запуск cron со своим стартапом, я просто запустил его и забыл. 1 раз спас меня, когда в позднем ночном бреде я набрал del / f / s * .cs


1

В Windows Vista Business, Enterprise и Ultimate эта функция встроена;)


Как это называется, что именно он делает, каковы компромиссы? Возможно, вы говорите о теневом копировании?
Редтуна

1

Вы можете проверить это, если вы заинтересованы в Apple Time Machine и имеете операционную систему на платформе Windows.

http://www.genietimeline.com

Скоро выйдет бета-версия ... Возможно, вы захотите подписаться на нее ... Не могу дождаться, чтобы заполучить Genie Timeline ...

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


Обзор: pc-tutorials.suite101.com/article.cfm/… Я бы сказал, что «автоматическое обнаружение наиболее распространенных пользовательских файлов» - это всего лишь обходной путь, поскольку он создает резервные копии только созданных пользователем файлов . Как восстановить всю систему тогда? Кажется, что нет никакой интеграции, например, с почтовым программным обеспечением. Что делать после удаления какого-либо сообщения? Нужно ли мне знать, где и как находится электронная почта на жестком диске? И можно ли восстановить одно сообщение? Резервное копирование практически всего и интеграция с другим программным обеспечением по-прежнему делают Time Machine единственной в своем роде. Облом.
Арджан

1

Я бы предложил использовать контроль версий, который вы можете подключить к вашей IDE. Это делает работу с этим бризом. Просто нажмите обновить / зафиксировать в вашем исходном дереве, и все готово!


1

Я люблю хранить и работать над своими проектами, используя Dropbox ( http://www.getdropbox.com/ ). он не только автоматически создает резервную копию вашей работы, но и сохраняет изменения для вас.


Если вы сохраняете часто, это будет огромной тратой пересмотра в хранилище DropBox.
Патрик Дежарден

1

Windows Server 2003 и более поздние версии имеют функцию « теневого копирования », которая похожа на Time Machine, но предназначена для сетевой корпоративной среды. Вы можете установить его локально, если действительно хотите.

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

Shadow Copy



0

Если вы буквально ищете «Time Machine для Windows»: Windows Vista поставляется с Time Warp (это кодовое имя, я забыл, как называется готовая функция). Это почти то же самое, что и Time Machine в OS X, только с меньшим количеством рекламы.


1
Это имя - теневая копия тома, и это слишком дружелюбно для бабушки. Вы можете только выбрать, какие типы файлов вы хотите сделать резервную копию («музыка», «картинки» и т. Д.), А не какие папки он должен отслеживать. Он запускается только один раз в день, если вы не скажете ему сделать резервную копию прямо сейчас.

0

Попробуйте Flashbake . Он может создавать резервные копии каждые n минут (через cron и, предположительно, планировщик Windows) файлов, которые не изменились за m минут (может быть 0). Вам понадобится Python, поэтому Cygwin или ActiveState Pyton. Он основан на git и предназначен для нетехнических типов.


0

Вы могли бы использовать виртуальную машину и делать снимки, прежде чем вносить большие изменения? Это довольно безболезненно, чтобы откатиться назад - около 5 минут и все готово :)


VM для виртуальной машины? ...
Патрик Дежарден

0

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


0

вы можете попробовать Genie Timeline, это как Windows Time Machine для Windows, и вы можете вернуться к нужной версии, используя ползунок времени для просмотра каждой версии http://www.genietimeline.com


Достаточно уже разъемов для Genie.
Арьян



0

Mercurial идеально подходит для этой работы.

Всякий раз, когда вы хотите сделать снимок своего кода, это все, что вы делаете в командной строке: hg commit и все готово!

Если вы хотите просмотреть разные версии вашего файла, это легко сделать с помощью TortoiseHG , используя его графическое контекстное меню, когда вы щелкаете правой кнопкой мыши по рассматриваемому файлу.

Кроме того, он лучше, чем SVN, потому что он не засоряет все ваши подпапки скрытыми каталогами .svn.


Что делать, если я не хочу тратить время на коммиты, тяну ... а просто на что-то автоматическое, которое отслеживает все изменения, такие как Google Docs, но локально. Что ты предлагаешь?
Скан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.