Ich löschte post-commit.tmpl und in post-commit-Datei, hier ist der Code:Wie man Post-Commit-Skript in SVN festlegen, um geänderte Dateien zu aktualisieren?
#!/bin/sh
export LANG=en_US.UTF-8
SVN_Path=/root/svn/myblog
WEB_Path=/home/app/myblog
echo `date "+%Y-%m-%d %H:%M:%S"`
$SVN_Path update --username xxx --password yyy $WEB_Path --no-auth-cache
# POST-COMMIT HOOK
#
# The post-commit hook is invoked after a commit. Subversion runs
# this hook by invoking a program (script, executable, binary, etc.)
# named 'post-commit' (for which this file is a template) with the
# following ordered arguments:
#
# [1] REPOS-PATH (the path to this repository)
# [2] REV (the number of the revision just committed)
#
# The default working directory for the invocation is undefined, so
# the program should set one explicitly if it cares.
#
# Because the commit has already completed and cannot be undone,
# the exit code of the hook program is ignored. The hook program
# can use the 'svnlook' utility to help it examine the
# newly-committed tree.
#
# On a Unix system, the normal procedure is to have 'post-commit'
# invoke other programs to do the real work, though it may do the
# work itself too.
#
# Note that 'post-commit' must be executable by the user(s) who will
# invoke it (typically the user httpd runs as), and that user must
# have filesystem-level permission to access the repository.
#
# On a Windows system, you should name the hook program
# 'post-commit.bat' or 'post-commit.exe',
# but the basic idea is the same.
#
# The hook program typically does not inherit the environment of
# its parent process. For example, a common problem is for the
# PATH environment variable to not be set to its usual value, so
# that subprograms fail to launch unless invoked via absolute path.
# If you're having unexpected problems with a hook program, the
# culprit may be unusual (or missing) environment variables.
#
# Here is an example hook script, for a Unix /bin/sh interpreter.
# For more examples and pre-written hooks, see those in
# the Subversion repository at
# http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and
# http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/
# REPOS="$1"
# REV="$2"
# mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
Leider nichts in meiner Projektdatei passieren wird (Projektpfad ist/home/app/myblog) nach Ich übertrage meinen modifizierten Code auf den Server. Aber wenn ich diese Datei in der Befehlszeile ausführen, werde ich diese Informationen erhalten:
2016-11-09 16:32:10
./post-commit: line 9: /root/svn/myblog: Is a directory
Zwischenzeit, in der Folge Pfad:/root/svn/myblog/db/revprops/0, kann ich alle begehen finden Logfiles . Ich denke, es bedeutet, dass die geänderten Dateien auf den Server übertragen werden, richtig?
Ich benutze CentOS, Express.
Also, könnte mir jemand dabei helfen? Danke!!
Vielen Dank für Ihre Antwort. Ich habe $ SVN_PATH geändert und svn auf dem Server neu gestartet, aber nichts hat sich geändert. Ich habe zugesagt und keine Aktualisierung im Projektpfad. Und ich habe versucht, modifiziertes Post-Commit-Skript in der Befehlszeile auszuführen, ich bekomme immer noch folgendes: ./post-commit: Zeile 9:/root/svn: Ist ein Verzeichnis. Gibt es etwas, was ich vermisst habe? –
@HenryYong der Pfad ist immer noch ungültig. '/ root/svn' ist keine ausführbare Datei. Finden Sie den tatsächlichen Pfad zu 'svn' auf Ihrem System: http://unix.stackexchange.com/questions/28555/how-to-find-applications-path-from-command-line – bahrep
Ich habe den tatsächlichen Pfad gefunden, der ist/usr/bin/svn. Aber es funktioniert immer noch nicht. In der Befehlszeile habe ich das jetzt: Übersprungen '/ home/app/myblog' Zusammenfassung der Konflikte: Übersprungene Pfade: 1 –