Ответ 1
Как я вижу, большая разница заключается в том, что checkout
создает рабочую копию, тогда как update
сбрасывает изменения в рабочую копию existing. p >
Я понимаю, что команда "SVN checkout" выполнит первоначальный доступ к файлам из репозитория Subversion и приведет их локально к вашему рабочему каталогу/копии и что команда "SVN update" получит изменения в файле ( s) из репозитория, если изменения были сделаны другими.
Мне кажется, что "обновление" - это всего лишь частный случай "проверки", то есть когда происходит проверка, он получает все файлы, так как пока не существует локально, и, следовательно, ВСЕ файлы "изменены" ", и что за кулисами эти команды делают в основном одно и то же. Я предполагаю, что команды существуют отдельно как средство упрощения?
Или, есть ли другие различия между командами, например, "обновление SVN" получает файлы, которые получают новые файлы (файлы, которые существуют в репозитории, которых у вас нет в вашей рабочей копии) или просто обновления существующих файлов
Как я вижу, большая разница заключается в том, что checkout
создает рабочую копию, тогда как update
сбрасывает изменения в рабочую копию existing. p >
svn checkout
копирует все файлы с версией из данного каталога в репозиторий при данной ревизии (по умолчанию HEAD) и копирует их на локальный компьютер. Он также генерирует все скрытые каталоги .svn и метаданные внутри них, которые делают эти файлы рабочей копией.
svn export
копирует все файлы с версией из данного каталога в репозитории при данной ревизии (по умолчанию HEAD) и копирует их на локальный компьютер, но создает стандартный иерархический каталог. (Он не создает рабочую копию, которая может быть обновлена или проверена обратно).
svn update
применяет изменения к существующей рабочей копии. Если при этом обнаружен конфликт, пользователь будет предупрежден и должен решить эту проблему, прежде чем сможет совершить какие-либо изменения. При использовании svn commit
требуется, чтобы рабочая копия была обновлена (т.е. такая же ревизия, что и HEAD).
Обновление обновит вашу проверочную версию до последней версии (или указанной другой ревизии) в репозитории. Если вы внесли изменения в свою рабочую копию, они все равно будут доступны после обновления. Если файлы были добавлены или удалены в репозиторий, это будет отражено в вашей рабочей копии. Если есть изменения как в вашей локальной копии, так и в репозитории, SVN попытается объединить все изменения для вас, если это не сработает, это будет означать конфликт, который вы разрешите вручную.
Subversion использует скрытые каталоги метаданных, чтобы включить предоставляемые ею функции. Эти .svn-каталоги - это то, что делает каталог в рабочей копии Subversion - без них это просто каталог, и Subversion не может с ним справиться.
UPDATE - это операция, выполняемая над рабочей копией Subversion; нет .svn каталогов, нет UPDATE. CHECKOUT - это операция, которая создает рабочую копию.
svn update
приносит только разницу в файлах от версии пользователя до последней доступной версии. Если никаких различий нет.
Но checkout создает новую папку и приносит все файлы для этой ветки. Checkout - хороший способ работать, если мы постоянно меняем отрасли, над которыми мы работаем. Обновление - это когда у нас есть багажник, и вам нужно получить обновления, сделанные другими на этом багажнике.
При использовании SVN существенная разница между проверкой и обновлением заключается в следующем: вы можете использовать команду checkout один раз , чтобы создать связь между локальным каталогом и репозиторием (в управление версиями) и скопировать все файлы из корневого репозитория в локальный рабочий каталог. После этого использование checkout для обновления копий в локальном каталоге приведет к следующим ошибкам:
svn: E175002: Невозможно подключиться к репозиторию по URL 'https://********'.
svn: E175002: Запрос OPTIONS возвратил неверный XML в ответ: ****. "
Единственный способ обновить текущие версии в локальном каталоге - это использовать команду svn update.