Wie kann ich den Standard-Autor ändern, um eine SVN-Repository für den Zugriff auf?
-
13-09-2019 - |
Frage
Ich möchte den Standard SVN Benutzernamen in einen neuen Namen ändern. Ich versuchte Lösung in diesem Link vorgeschlagen ( Wie kann ich den Standard-Autor ändern a für den Zugriff auf lokale SVN-Repository? ), aber es funktioniert nicht.
Ich habe Zugang zu SVN-Repository über die Befehlszeile und Aptana mit Subversive-Client.
Lösung
Bearbeiten : Diese Antwort ist wie ein Autor in den Protokollen zu ändern, nicht, wie der Standard Autor einzustellen. Ich werde hier die Lösung verlassen, da er noch die letzten Commits rückgängig machen helfen könnte, in dem der Autor nicht die richtige ist.
Edit 2 :. Hook-Skript Beispiel und Informationen für .bat-Dateien
Sie geben nicht viele Details, damit wir erraten müssen, und mein erster Gedanke würde über den Hook-Skript sein, um die Änderung zu bestätigen aufgerufen wird. In diesem Fall Ihr Kunde ist nicht das Problem, es ist ein Server-Konfigurationsproblem.
Stellen Sie sicher, dass der Pre-revprop Wechsel Hook-Skript (in Ihrem <repository>/hooks
Verzeichnis auf dem Server), durch den Server ausgeführt werden kann und ermöglicht eine Änderung des Autors.
Hier ist ein Beispiel in 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;
}
Wenn Ihr SVN-Server auf Linux ist, können Sie auch einfach die pre-revprop-change.tmpl
Datei umbenennen, die automatisch mit jedem Repository erstellt wird pre-revprop-change
, und geben Sie es Ausführbarkeitsberechtigung für den Server. Es sollte so aussehen Autor zu erlauben, und melden Sie sich Änderungen:
#!/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
Für 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
Wenn es nicht funktioniert, könnte es auf die COMSPEC oder die PATH-Variablen zurückzuführen sein, nicht die richtigen Werte für das Server-Konto haben, oder es könnte auch die Berechtigungen für den Hook-Skript sein. Sehen Sie sich diese Link für weitere Details .
Es gibt andere Beispiele von Hook-Scripts bei CollabNet .
Mehr Details in der Versionskontrolle mit Subversion Online-Buch, und auch hier (überprüfen Sie die nächsten Abschnitte).
Andere Tipps
für Eclipse (sollte aber mit Eclipse-basierten IDE wie Aptana arbeiten):
In den SVN Repository
Blick auf die SVN Perpective
, gehen Sie einfach auf die
Location Properties
des gewünschten Repository und die Anmeldeinformationen im Authentication
Feld ändern.
Es soll Ihren Autor von nun an ändern.
Wenn Sie die Geschichte neu zu schreiben möchten, müssen Sie so etwas wie RedGlyph-Lösung verwenden.
Subversion 1.4.x erhalten haben nur svn: log in Standard pre-revprop-change
Datei erlaubt. Dies kann Probleme verursachen, wenn Eclipse Subversive SVN-Plugin.
magische Fehler lösen besagen, dass
Ändern Revision andere Eigenschaften als svn: log ist verboten
nach svn Befehle. Zur Lösung dieses spezielle Problem Add
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:author" ]; then exit 0; fi
von RedGlyph Lösung oben.