Domanda

Così sto avendo qualche problema con le impostazioni di questo. Mi spiego.

Ho tre file nella mia d: \ svn \ file Ganci (D: \ non è finestre unità)

post-commit.bat
trac-post-commit-hook.cmd
trac-post-commit-gancio

Ho installato il file post-commit.bat in d: \ svn \ file ganci con il seguente

%~dp0\trac-post-commit-hook.cmd %1 %2

Nel mio trac-post-commit-hook.cmd - Ho

@ECHO OFF
::
:: Trac post-commit-hook script for Windows
::
:: Contributed by markus, modified by cboos.

:: Usage:
::
:: 1) Insert the following line in your post-commit.bat script
::
:: call %~dp0\trac-post-commit-hook.cmd %1 %2
::
:: 2) Check the 'Modify paths' section below, be sure to set at least TRAC_ENV

:: ----------------------------------------------------------
:: Modify paths here:

:: -- this one *must* be set
SET TRAC_ENV=D:\trac\project

:: -- set if Python is not in the system path
SET PYTHON_PATH=D:\trac\Python25

:: -- set to the folder containing trac/ if installed in a non-standard location
SET TRAC_PATH=D:\trac\Python25\Lib\site-packages\trac
:: ----------------------------------------------------------

:: Do not execute hook if trac environment does not exist
IF NOT EXIST %TRAC_ENV% GOTO :EOF

set PATH=%PYTHON_PATH%;%PATH%
set PYTHONPATH=%TRAC_PATH%;%PYTHONPATH%

SET REV=%2

Python "%~dp0\trac-post-commit-hook" -p "%TRAC_ENV%" -r "%REV%" 
file

Nel mio trac-post-commit-gancio - il suo solo lo script standard dal http://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook?rev=920

== Problemi ==

Quando eseguo post-commit.bat nel richiamo del cmd - funziona benissimo -. Nessun errore vengono generati

Tuttavia, quando ho commesso qualcosa nel SVN per un biglietto di prova che ho creato in Trac - # 1 fisso. - non cambia nulla su Trac. Niente aggiorna a tutti.

Quando cambio la 'trac-post-commit-gancio' a 'trac-post-commit-hook.py' e gestito da d: \ svn \ ganci \ python trac-post-commit-hook.py ottengo

File "trac-post-commit-hook.py", line 104, in <module>
os.environ{'PYTHON_EGG_CACHE'] = os.path.join(options.project, '.egg-cache')

File "D:\trac\Python25\lib\ntpath.py", line 90, in join
assert len(path) > 0
TypeError: object of type 'NoneType' has no len()

Sono ad una perdita quanto a ciò che sta realmente andando male? Qualcuno può fornire qualsiasi tipo di assistenza?

È stato utile?

Soluzione

Si potrebbe voler controllare questa risposta per vedere se aiuta a risolvere il problema:

Se il problema persiste, si dovrebbe cercare la registrazione in un file. Dal momento che funziona bene quando si utilizza SVN, ma non riesce per Trac, è probabilmente un po 'di errori di configurazione. Una volta che si può effettivamente visualizzare il messaggio di errore, sarà più facile da risolvere. Per cominciare provare a cambiare il:

Python "%~dp0\trac-post-commit-hook" -p "%TRAC_ENV%" -r "%REV%" 2>&1 1>>c:\temp\trachook.log

nel file cmd. Questo dovrebbe inviare sia i messaggi stdout e stderr al file \ trachook.log \ temp.

EDIT: Scusate, perse il messaggio di errore che hai postato già. Sembra che non sta facendo il options.project destra e potrebbe essere impostato a nessuno quando si dovrebbe essere impostato dal TRAC_ENV dall'opzione -p.

Sei sicuro si sta eseguendo con l'opzione dopo la ridenominazione di esso a .py ed eseguirlo? In tal caso, provare a cambiare il file e la registrazione del valore delle options.project dopo gli argomenti sono stati analizzati. Provate a rintracciare il motivo per cui non è stato impostato.

EDIT: A proposito, la linea di errore:

File "trac-post-commit-hook.py", line 104, in <module>
os.environ{'PYTHON_EGG_CACHE'] = os.path.join(options.project, '.egg-cache')

Non vedo un riferimento alla presente nel link al post-commit-gancio. Forse si aggiunge questo? O è il link sbagliato? Inoltre, c'è un errore di sintassi in quella linea: la parentesi graffa '{' dovrebbe essere una parentesi quadra '['. Ma penso che l'errore si verifica in realtà prima che, nel os.path.join (options.project è Nessuno). Prova a mettere una riga prima che uno:

print 'options.project is set to: ', options.project

e vedere che cosa l'uscita è.

Altri suggerimenti

lo script hook richiede i parametri da passare. Per provare a mano, è possibile eseguire:

trac-post-commit-gancio -p / percorso / a / ambiente -r 1001

sostituire 1001 con una revisione che contiene un comando, e il percorso con il vostro ambiente trac. Eseguire mentre ci si trova nella directory di ganci.

In bocca al lupo!

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