Это зависит от того, почему вы отказались от функции.
Если "в последний момент" - это во время тестирования системы, и вы не хотите повторять это, то я бы сказал, что вы просто отключили функцию и все равно отправили ее.
Мы делали так в прошлом; удаление функции может быть слишком рискованным с точки зрения создания дополнительных ошибок. Если функция вам больше не нужна (например, требование отпало, или реализация была признана неправильной), то с точки зрения риска, вероятно, лучше просто отключить ее с минимальными изменениями кода.
Я имею в виду, удалить или скрыть элементы пользовательского интерфейса, которые включают эту функцию, тогда пользователи не будут знать, что она есть (при условии, что она отключена по умолчанию).
Надеюсь, в будущем релизе будет возможность отрефакторить эту часть кода и либо убрать функцию, либо вернуть ее в исходное состояние.
Если вы используете TortoiseSVN в качестве клиента, у него есть "откат изменений из этой ревизии" прямо в контекстном меню.
Просто покажите журнал на рабочей копии и выберите ревизию, с которой вы хотите произвести обратное слияние (в данном случае, ревизию, которая представляет собой место слияния в функциональной ветке).
alt text http://img64.imageshack.us/img64/9053/svnreversemerge.png
В противном случае вы можете выполнить обратное слияние из командной строки. Обратное слияние создаёт новую ревизию, которая является ревизией HEAD за вычетом изменений из ревизии, с которой вы произвели обратное слияние, поэтому вы всегда можете произвести "обратное слияние". SVN отлично подходит для этого.