TortoiseSVN Рабочая копия / Редакция не передает должным образом - PullRequest
1 голос
/ 30 декабря 2008

У меня есть проект VS 2008 под управлением исходного кода TortoiseSVN. Я - единственный человек, использующий это в настоящее время.

Я пытался зафиксировать свои последние изменения, когда получил сообщение «Файл abc устарел - пожалуйста, обновите». Когда я пытаюсь обновить проект, я получаю целый набор конфликтов файлов (двоичный и текстовый). Поскольку я уверен, что моя рабочая копия содержит правильную версию файлов, я пытаюсь разрешить конфликты, выбрав «моя» в качестве правильной версии. Я также попытался просто пометить каждый конфликт файлов как разрешенный. Затем я могу совершить.

Однако после этого мой проект VS 2008 отказывается компилироваться и выдает сотни ошибок (столько ошибок, сколько VS 2008 сообщает, что слишком много ошибок, чтобы их показать!) Что-то в разрешении конфликтов TortoiseSVN полностью испортило проект, и он отказывается строить.

Можно ли заставить TortoiseSVN просто сохранить мою рабочую копию в хранилище как последнюю версию, без проверки на конфликты?

Ответы [ 3 ]

3 голосов
/ 30 декабря 2008

Я надеюсь, что вы сделали резервную копию своей рабочей копии перед обновлением, потому что в других случаях наиболее вероятно, что конфликты привели к огромной куче комментариев >>>>>> theirs и <<<<<<< mine в ваших исходных файлах.

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

Переместите текущую «рабочую» рабочую копию в безопасное место. Проверьте проект полностью свежим. Скопируйте исходные файлы поверх новой рабочей копии и затем зафиксируйте полученные изменения.

Когда ваше исходное дерево состоит из нескольких каталогов, может быть утомительно копировать каждый каталог по отдельности. Чтобы преодолеть это, вы можете экспортировать вашу безопасную «рабочую» рабочую копию, используя TortoiseSVN -> Export All. Это создает каталог без всех файлов и каталогов .svn. Затем вы можете скопировать этот экспортированный каталог поверх новой рабочей копии.

1 голос
/ 30 декабря 2008

Я обнаружил, что файлы проекта Visual Studio довольно подвержены проблемам с автоматическим слиянием. Проблема в том, что формат файлов настолько повторяется, что утилите слияния очень сложно определить, является ли изменение дополнением или модификацией. Кроме того, некоторые действия приводят к тому, что Visual Studio переставляет записи в файле проекта. Опять же, эти изменения относительно сложны для правильной обработки утилитой слияния.

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

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

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

0 голосов
/ 30 декабря 2008

Visual Studio и TortoiseSVN не очень хорошо играют вместе. Одна вещь, которую я заметил, заключается в том, что вы не можете успешно создавать версии в каталоге сборки, потому что VS считает, что он «владеет» каталогами сборки и может удалить вашу папку .svn (это только для сборок, включающих чистую? )

Вы можете взглянуть на клиент Subversion, который интегрируется в Visual Studio. На ум приходит AnkhSVN, но хорошей отправной точкой для исследования будет http://sharpsvn.open.collab.net/. В качестве альтернативы, вы можете рассмотреть возможность использования sharpsvn непосредственно из задачи до или после сборки или, возможно, макроса в Visual Studio.

...