Domanda

Voglio cambiare il nome utente SVN per un nuovo nome. Ho provato soluzione proposta in questo link ( Come posso cambiare l'autore di default per l'accesso a un repository SVN locale? ), ma non funziona.

Ho accesso a repository SVN tramite riga di comando e Aptana utilizzando il client sovversivo.

È stato utile?

Soluzione

Modifica : Questa risposta è su come modificare un autore nei registri, non come impostare l'autore predefinito. Lascio la soluzione qui in quanto potrebbe ancora aiutare annullare ultimi commit, sono stati la non autore quella corretta.

Modifica 2 :. Gancio script di esempio e di informazione per i file .bat


Non dare più dettagli per cui dovremo indovinare, e il mio primo pensiero sarebbe circa lo script gancio che è chiamato a convalidare la modifica. In tal caso, il cliente non è il problema, è un problema di configurazione del server.

Assicurarsi che lo script di pre-revprop-change gancio (nella directory <repository>/hooks, sul server), è eseguibile dal server e consente un cambio di autore.

Ecco un esempio 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;
} 

Se il server SVN è su Linux, si può anche semplicemente rinominare il file pre-revprop-change.tmpl che viene creato automaticamente ad ogni repository per pre-revprop-change, e ne ha il permesso eseguibile per il server. Esso dovrebbe essere simile a questo per consentire autore e registrare le modifiche:

#!/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

Per 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

Se non funziona, potrebbe essere dovuto al COMSPEC o le variabili PATH che non hanno i valori corretti per l'account del server, o potrebbe anche essere le autorizzazioni per lo script gancio. Controllare questo link per ulteriori dettagli .

Ci sono altri esempi di script di aggancio a CollabNet .

Maggiori dettagli nel controllo di Versione con Subversion servizio di prenotazione online, e anche qui (controllare le sezioni successive).

Altri suggerimenti

Per Eclipse (ma dovrebbe funzionare con IDE basato su Eclipse come Aptana):

Nelle viste SVN Repository del SVN Perpective, basta andare al  Location Properties del repository desiderato e modificare le credenziali nella casella Authentication.

Si dovrebbe cambiare il vostro autore da ora in poi.

Se si vuole riscrivere la storia, è necessario utilizzare qualcosa come la soluzione di RedGlyph.

Subversion 1.4.x hanno ottenuto solo svn: log consentito in file predefinito pre-revprop-change. Ciò può causare problemi quando si utilizzano Eclipse con il plugin svn Subversive.

Per risolvere l'errore magico che indica che

  

Modifica delle proprietà di revisione diverse da svn: log è proibito

dopo i comandi svn. Per risolvere questo particolare problema aggiuntivo

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

dalla soluzione RedGlyph sopra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top