Есть ли разумный способ резервного копирования решений Visual Studio C++ без всех дополнительных файлов, создаваемых IDE?

Я хотел бы сделать резервную копию своего проекта, но папка теперь превышает 6,6 ГБ, в основном за счет дополнительных библиотек, таких как boost и т. Д., Но даже если я просто выберу папки с моими источниками, я получаю большие файлы, такие как: .ipch, . sdf и, возможно, другие. Что еще хуже, я использую eclipse для кода и VS для компиляции, так что это добавляет беспорядка, хотя у меня сложилось впечатление, что только VS создает большие файлы.

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

Как вы решаете эту проблему и нужно ли сохранять файл типа .sdf?

Ответ:

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

Окончательный ответ После тщательного изучения я обнаружил, что выделение файлов, которые должны быть проигнорированы при архивации winrar, по-прежнему вызывает затруднения. В конце концов я установил Git из любопытства, и он мне понравился. Итак, теперь у меня есть некоторые из моих проектов в локальном репозитории. Из eclipse я могу легко пометить файлы и каталоги как игнорируемые, а для создания резервной копии я использую git-extensions для клонирования репозитория. Мне все еще нужно посмотреть на очистку старых версий, что не очень удобно для пользователя в Git, но, по крайней мере, кажется возможным, а затем я просто заархивирую папку 7zip. В худшем случае я просто удаляю базу данных git, и у меня остается последняя версия моих исходных файлов. Или, может быть, я могу оформить заказ в другой каталог. Посмотрим.


person Community    schedule 15.10.2010    source источник


Ответы (4)


вы можете написать простой скрипт (командный файл), который архивирует только нужные вам типы файлов. предположим, вы хотите заархивировать только все ваши файлы .aspx, .cs, .config, .xsd,

предположим, что у вас установлен winrar в папке c:\program files\winrar

и ваш проект находится в c:\project\MyBigProject

затем просто откройте свой блокнот, скопируйте и вставьте это и сохраните как «script.bat» (не забывайте двойные кавычки при сохранении, вам нужно сохранить его с двойными кавычками, чтобы блокнот сохранял как расширение .bat вместо .txt)

поэтому для резервного копирования (другими словами, для архивирования нужных файлов):

"C:\Program Files\WinRAR\rar" a -r0 -ed MyBackup.rar c:\project\MyBigProject\*.aspx,*.cs,*.xsd,*.config

синтаксис такой:

"path to winrar folder" 'switches' "Name of completed rar file" 'folder to zip'

просто убедитесь, что пути в правильном порядке. части "a -r0 -ed" являются переключателями, и вы можете узнать все о переключателях здесь:

http://acritum.com/winrar/manual/index.html?html_helpswitches.htm

Я использую переключатель «Игнорировать файлы» (http://acritum.com/winrar/manual/index.html?html_helpswxa.htm), чтобы игнорировать все файлы и папки, которые мне не нужны (с подстановочными знаками), и мой проект составляет около 86 МБ. , когда он сжимается только с файлами кода, он достигает 6 МБ.

это лучший способ сделать это на самом деле. Если вам нужна дополнительная помощь, пожалуйста, спросите!

edit: Кроме того, загляните в SVN (это бесплатно!) - я тоже использую svn, и это действительно полезно. есть даже бесплатный инструмент AnkhSvn для интеграции в визуальную студию. это просто фантастика!

person LocustHorde    schedule 15.10.2010
comment
На самом деле я пробовал с графическим интерфейсом winrar, и нецелесообразно исключать определенные типы файлов ... cmdline выглядит как правильное решение. - person ; 15.10.2010
comment
рад, что это могло помочь, попробуйте справку по документу winrar и esp. игнорировать переключение файлов, это поможет вам лучше всего, я думаю. Если вам нужна помощь в настройке переключателей, дайте мне знать! - person LocustHorde; 18.10.2010

Во-первых: вместо резервного копирования я настоятельно рекомендую использовать систему контроля версий (VCS), например . Subversion, Mercurial или Git. Это профессиональный эквивалент резервного копирования, за исключением того, что он поддерживает каждую версию каждого файла, а не только копию последней версии.

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

Для своих проектов я обычно не регистрируюсь:

  • Сгенерированные исполняемые файлы (вывод в каталогах Release, Debug, x64\Release и x64\Debug).
  • Предварительно скомпилированные заголовки (папка ipch)
  • База данных просмотра (sdf файлов)

Все эти вещи можно сгенерировать заново, перестроив ваш проект. Если вы работаете в команде, вам, вероятно, не следует регистрироваться:

  • Ваши личные настройки (.suo)

Вы всегда можете воссоздать это, если это необходимо.

person Nate    schedule 15.10.2010

Особенно хороший способ сделать резервную копию ваших материалов — поместить исходный код в систему контроля версий. Иногда я использую git, а иногда mercurial. Используя git, я могу игнорировать файлы, для которых не следует создавать резервные копии, добавляя их в .gitignore:

Debug
Yokto.sdf
Yokto.suo
*.filters
*.user
ipch
Release
Yokto.opensdf
*.opensdf
*.sdf

С помощью git я могу создать репозиторий резервных копий на сетевом диске и время от времени просто нажимать на него.

person Daniel Lidström    schedule 15.10.2010
comment
Я использую AnkhSvn (SVN), это просто фантастика! - person LocustHorde; 15.10.2010

Выполнение «чистки» перед архивированием удаляет большую часть того, что вам не нужно.

Отредактировано для добавления:

Конечно, система контроля версий необходима для любого текущего проекта, но это не то, о чем он просит.

person egrunin    schedule 15.10.2010
comment
Если вы посмотрите на его мотивацию для резервного копирования исходных файлов, ему будет лучше обслуживать систему контроля версий. - person CadentOrange; 15.10.2010