Как проверить точку разветвления CVS?

self является синонимом для объекта: в частности, получателя сообщения, которое вызвало метод. Он используется в теле метода.

yourself - это сообщение, которое вы можете отправить объекту и которое возвращает получателя сообщения.

anObject yourself возвращает anObject.

yourself часто используется в конце каскада сообщений в теле метода.

Когда вы хотите, чтобы возвращаемое значение из метода было получателем, но последнее сообщение в каскаде возвращает что-то еще, вы можете написать:

self aMessageReturningTheReceiver;
      aMessageReturningTheArgument: anArgument .
^self

или

self aMessageReturningTheReceiver;
      aMessageReturningTheArgument: anArgument;
      yourself
6
задан DevSolar 25 June 2009 в 07:27
поделиться

3 ответа

Поскольку вы не установили тег при ветвлении, единственный способ, который я вижу, - это использовать подход даты. Но вы все еще можете установить этот тег сейчас. Предположим, вы хотите назвать этот начальный выпуск «ReleaseX0», потому что, к сожалению, имя «ReleaseX» уже занято для ветки. В зависимости от того, хотите ли вы установить тег в ветви или в ветви MAIN, вы можете использовать любую из этих команд проверки:

cvs co -r releaseX -D "2008-12-30" modulename
cvs co -D "2008-12-30" modulename

Затем установите тег:

cvs tag releaseX0

С этого момента вы можете проверить этот выпуск так же, как вы проверяете другие выпуски.


Как вы указали в своем комментарии к моему первоначальному ответу, переименование ветки с releaseX на releaseX_branch следующим образом не работает :

cvs rtag -r releaseX releaseX_branch modulename
cvs rtag -d releaseX modulename

Чтобы переименовать ветку в "cvs admin -N <старый>: <новый> "необходимо использовать. Но переименование ветки в любом случае - плохая идея. (Я прошу прощения за то, что поднял это в первую очередь ;-).) Переименование испортит рабочие копии других пользователей.

10
ответ дан 8 December 2019 в 13:48
поделиться

Я не эксперт по CVS. Вот что бы я сделал на вашем месте. CVS отмечает версии файлов в ветке HEAD как 1.N, когда вы разветвляете файл в версии X, коммиты в эту ветку помечаются как 1.XBM. Итак, после проверки releaseX , я бы написал сценарий, который обновлял бы файлы, которые были изменены в ветке, до версии 1.X, а затем пометил бы мою рабочую копию. Может быть, есть способ попроще, но я о нем не знаю.

2
ответ дан 8 December 2019 в 13:48
поделиться

Извините, это невозможно. Единственный вариант, который у вас есть, - это оформление заказа по времени. Проблема в том, что CVS не коррелирует между разными файлами, что делается с помощью тегов. Когда тег исчезает, информация, связывающая разные файлы, исчезает навсегда. Это означает, что вам нужно написать сценарий, определяющий точку ветвления для каждого файла.

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

С CVS вы должны максимально автоматизировать:)

1
ответ дан 8 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

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