Действительно ли возможно всегда перезаписать локальные изменения при обновлении от SVN?

Одно соображение - какое из значений было бы только для чтения, как только объект создается?

Публично перезаписываемые свойства могли, возможно, быть присвоены после конструкции.

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

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

было бы действительно странно иметь объект, который требует, чтобы 7 или больше параметров дали объекту полное состояние и все истинно быть внешним по своей природе.

6
задан Daniel Rikowski 14 September 2009 в 07:43
поделиться

6 ответов

Во-первых, мне жаль, что вы работали с VB6.

Во-вторых, я полагаю, что вам действительно нужно удалить файл перед обновлением. Итак, в этом случае у вас может быть файл летучей мыши с именем «do update», и вы просто дважды щелкните его, вместо того, чтобы фактически использовать TortiseSVN (или что-то еще) для выполнения обновлений. Вы заставляете эту летучую мышь удалить его, а затем, что неудивительно, обновить.

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

4
ответ дан 11 December 2019 в 00:40
поделиться

Можно ли заставить SVN всегда перезаписать локальный файл одним в репозитории

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

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

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

1
ответ дан 11 December 2019 в 00:40
поделиться

Я предполагаю, что это файл, который всегда динамически создается / модифицируется вашей IDE.

Я думаю, если вы добавите этот файл в svn: ignore настройки, это лучше соответствует вашим потребностям. См. svn-configuration для получения более подробной информации. Этот параметр заставляет ваш SVN игнорировать этот файл при добавлении или импорте. С его помощью вы также можете сохранить свои локальные изменения в файле, если вам понадобится сделать это в какой-то момент.

1
ответ дан 11 December 2019 в 00:40
поделиться

Что ж, вы всегда можете использовать проверку вместо обновления.

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

0
ответ дан 11 December 2019 в 00:40
поделиться

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

ЕСЛИ вы хотите отклонить локальные изменения перед обновлением, вы должны выполнить откат перед обновлением. Сам SVN этого не сделает, вам нужно делать это вручную.

0
ответ дан 11 December 2019 в 00:40
поделиться

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

Например, если ваш файл называется «foo», вы можете сохранить файл «foo.example» в SVN. Затем, когда вы впервые проверяете проект на любой данной машине, первое, что вам нужно сделать, это переименовать " но ваши модификации останутся локальными. Таким образом, они не будут затронуты обновлениями, и если вы поместите «foo.example» в свой список svn: ignore , вам не придется беспокоиться о том, что он случайно вернется. Единственный недостаток - это делает вашу первоначальную проверку немного более сложной, но это кажется небольшой платой.

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

но ваши модификации останутся локальными. Таким образом, они не будут затронуты обновлениями, и если вы поместите «foo.example» в свой список svn: ignore , вам не придется беспокоиться о том, что он случайно вернется. Единственный недостаток - это то, что это делает вашу первоначальную проверку немного более сложной, но это кажется небольшой платой.

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

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

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

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

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

1
ответ дан 11 December 2019 в 00:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: