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

È stato utile?

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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top