Как мне изменить автора по умолчанию для доступа к репозиторию SVN?

StackOverflow https://stackoverflow.com/questions/1666421

Вопрос

Я хочу изменить имя пользователя SVN по умолчанию на новое имя.Я попробовал решение, предложенное по этой ссылке (Как мне изменить автора по умолчанию для доступа к локальному репозиторию SVN?), но это не работает.

У меня есть доступ к репозиторию SVN через командную строку и Aptana с использованием Subversive client.

Это было полезно?

Решение

Редактировать:Этот ответ посвящен тому, как изменить автора в журналах, а не как установить автора по умолчанию.Я оставлю решение здесь, поскольку оно все еще могло бы помочь отменить последние несколько коммитов, если бы автор был неправильным.

Правка 2:пример скрипта подключения и информация для файлов .bat.


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

Убедитесь, что сценарий перехвата pre-revprop-change (в вашем <repository>/hooks directory, на сервере), исполняется сервером и допускает смену автора.

Вот пример на C:

#include <stdio.h>

int main(int argc, char *argv[])
{
int i;
 char *repos = argv[1];
 char *rev = argv[2];
 char *user = argv[3];
 char *propname = argv[4];
 char *action = argv[5];

 if (!strcmp(action, "M") && !strcmp(propname, "svn:log")) return 0;
 if (!strcmp(action, "M") && !strcmp(propname, "svn:author")) return 0;
 fprintf(stderr, "Changing revision properties other than svn:log or svn:author is prohibited");
 return 1;
} 

Если ваш SVN-сервер работает в Linux, вы также можете просто переименовать pre-revprop-change.tmpl файл, который автоматически создается с каждым репозиторием для pre-revprop-change, и предоставьте ему разрешение на выполнение для сервера.Это должно выглядеть примерно так, чтобы разрешить автору и регистрировать изменения:

#!/bin/sh

REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:author" ]; then exit 0; fi
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

echo "Changing revision properties other than svn:log or svn:author is prohibited" >&2
exit 1

Для Windows:

@echo off
REM pre-revprop-change.bat hook script
if "%4" == "svn:log" exit /b 0
if "%4" == "svn:author" exit /b 0
echo "Changing revision properties %4% is prohibited" >&2
exit /b 1

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

Есть и другие примеры скриптов-хуков в CollabNet.

Более подробная информация в Управление версиями с помощью Subversion онлайн-бронирование, а также здесь (проверьте следующие разделы).

Другие советы

Для Eclipse (но должен работать с IDE на основе Eclipse, такой как Aptana) :

В SVN Repository взгляды на SVN Perpective, просто зайдите в Location Properties нужного репозитория и измените учетные данные в Authentication коробка.

Отныне это должно изменить вашего автора.

Если вы хотите переписать историю, вам нужно использовать что-то вроде решения RedGlyph.

В Subversion 1.4.x по умолчанию разрешен только svn: log pre-revprop-change файл.Это может вызвать проблему при использовании Eclipse с Subversive svn plugin.

Чтобы устранить магическую ошибку, заявляющую, что

Изменение свойств редакции, отличных от svn:log, запрещено

после команд svn.Чтобы решить эту конкретную проблему, добавьте

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:author" ]; then exit 0; fi

из решения RedGlyph выше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top