Ancora un altro Subversion “Commit fallito” fusione di 'blabla': 200 OK
-
22-09-2019 - |
Domanda
ottengo il famigerato "fusione di 'qualunque': 200 OK" ogni volta che provo a commettere con un post-commit hook su Windows (in esecuzione il repository e Trac a livello locale), e sto impazzendo. Ho cercato dappertutto per un giorno all'altro, senza trovare alcuna soluzione.
Quindi, ecco come è impostato e quello che ho provato finora:
Regolazioni: Windows 7 (64-bit) VisualSVN Server TortoiseSVN Trac 0.11.6
- Sto usando i tre script standard per post-commit su Windows.
- Tutto funziona quando faccio funzionare post-commit.cmd dal prompt dei comandi con il pronti contro termine e changesetnumber come parametri.
- Dopo ampia risoluzione dei problemi, ho scoperto che se tolgo l'ultima riga in trac-post-commit.cmd, Python "% ~ dp0 \ trac-post-commit-hook.py" p "% TRAC_ENV%" -r "% REV%" -u "% AUTORE%" -m "% LOG%", l'errore Commit fallito va via.
- Aggiunta 1/0 (generando una divisione per zero) nello script python non mostra nulla di diverso. Dal prompt dei comandi si ottiene un errore, però.
- La rimozione tutto il codice nello script python rende anche il commettere fallito andare via, quindi credo che il colpevole è in trac-post-commit-hook.py.
Forse, se ho potuto inviare l'errore effettivo di un file di log, ho potuto scavare un po 'più a fondo, ma non sono sicuro di come.
post-commit.cmd:
call %~dp0\trac-post-commit-hook.cmd %1 %2
trac-post-commit-hook.cmd:
http://trac.edgewall.org/ Browser / trunk / contrib / trac-post-commit-gancio? rev = 920
Grazie mille, vorrebbe dire un sacco se qualcuno potesse aiutare un po 'qui! / Martin
Soluzione
Per ottenere il messaggio di errore mentre si fa il commit SVN, si dovrebbe essere in grado di cambiare:
if __name__ == "__main__":
if len(sys.argv) < 5:
print "For usage: %s --help" % (sys.argv[0])
else:
CommitHook()
a:
if __name__ == "__main__":
if len(sys.argv) < 5:
print "For usage: %s --help" % (sys.argv[0])
else:
try:
CommitHook()
except Exception, e:
print >> sys.stderr, str(e)
sys.exit(1)