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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top