self
является синонимом для объекта: в частности, получателя сообщения, которое вызвало метод. Он используется в теле метода.
yourself
- это сообщение, которое вы можете отправить объекту и которое возвращает получателя сообщения.
anObject yourself
возвращает anObject
.
yourself
часто используется в конце каскада сообщений в теле метода.
Когда вы хотите, чтобы возвращаемое значение из метода было получателем, но последнее сообщение в каскаде возвращает что-то еще, вы можете написать:
self aMessageReturningTheReceiver;
aMessageReturningTheArgument: anArgument .
^self
или
self aMessageReturningTheReceiver;
aMessageReturningTheArgument: anArgument;
yourself
Поскольку вы не установили тег при ветвлении, единственный способ, который я вижу, - это использовать подход даты. Но вы все еще можете установить этот тег сейчас. Предположим, вы хотите назвать этот начальный выпуск «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 <старый>: <новый> "необходимо использовать. Но переименование ветки в любом случае - плохая идея. (Я прошу прощения за то, что поднял это в первую очередь ;-).) Переименование испортит рабочие копии других пользователей.
Я не эксперт по CVS. Вот что бы я сделал на вашем месте. CVS отмечает версии файлов в ветке HEAD как 1.N, когда вы разветвляете файл в версии X, коммиты в эту ветку помечаются как 1.XBM. Итак, после проверки releaseX , я бы написал сценарий, который обновлял бы файлы, которые были изменены в ветке, до версии 1.X, а затем пометил бы мою рабочую копию. Может быть, есть способ попроще, но я о нем не знаю.
Извините, это невозможно. Единственный вариант, который у вас есть, - это оформление заказа по времени. Проблема в том, что CVS не коррелирует между разными файлами, что делается с помощью тегов. Когда тег исчезает, информация, связывающая разные файлы, исчезает навсегда. Это означает, что вам нужно написать сценарий, определяющий точку ветвления для каждого файла.
В качестве общей практики и в случае, если вам не нужны многие теги в репозитории, я бы предложил создать тег в магистрали (или ветвь, откуда вы разветвляетесь), а также при слиянии. Эти теги должны соответствовать соглашению об именах, а затем в сценариях CVS вы можете предотвратить их использование.
С CVS вы должны максимально автоматизировать:)