Как отметил @FelixKling, наиболее вероятным сценарием является то, что узлы, которые вы ищете, еще не существуют.
Однако современные методы разработки часто могут манипулировать элементами документа за пределами дерева документов либо с DocumentFragments, либо просто отсоединением / повторным подключением текущих элементов напрямую. Такие методы могут использоваться как часть шаблонов JavaScript или для предотвращения чрезмерных операций перерисовки / переплавки, в то время как элементы, о которых идет речь, сильно изменяются.
Аналогично, новая функциональность «Теневой DOM» развертывается в современных браузерах позволяет элементам быть частью документа, но не обрабатываться запросом document.getElementById и всеми его методами sibling (querySelector и т. д.). Это делается для инкапсуляции функциональных возможностей и, в частности, скрыть его.
Опять же, скорее всего, элемент, который вы ищете, просто (пока) в документе, и вы должны сделать, как предлагает Феликс , Тем не менее, вы также должны знать, что это все чаще является не единственной причиной того, что элемент может быть необоснованным (временно или постоянно).
Вы используете рычаги постфиксации . Вот руководство .
Вот демонстрационный сценарий Ruby, который посылает электронное письмо после каждой фиксации: фиксация-email.rb
Существует (большой) пример, записанный в Perl, включенном в источник Подрывной деятельности (это может быть просмотрено здесь ).
Какая платформа?
На Mac OS X я установил msmtp и создал сценарий постфиксации под рычагами в репозитории. .msmtprc файл должен быть установкой для svn
(или www
) пользователь.
REPOS="`echo $1 | sed 's/\/{root of repository}//g'` "
REV="$2"
MSG=`/usr/local/bin/svn log -v -r HEAD https://localhost$REPOS`
/usr/local/bin/msmtp {list of recipients} <<EOF
Subject: SVN-Commit $REPOS#$REV
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8Bit
$MSG
EOF
Делают {root of repository}
и {list of recipients}
специфичный для Ваших потребностей. Обратите внимание, что я использовал UTF-8, потому что у нас есть некоторые специальные символы здесь в Швеции (åäà ¶).
Я использую сценарий постфиксации, подобный этому один .
Это, посылает хорошее электронное письмо HTML. Я обновил его некоторые, где это выделяет код, который был удален в красном и коде выделений, который был включен синий.
Поскольку кто-то еще сказал, 'что платформа'. В Windows I использовали, 'блеют', который является бесплатной почтовой программой SMTP командной строки, чтобы сделать это, наряду с постфиксацией и другим пакетным файлом.
фиксация сообщения похожа на это: (Просто вызовы другой пакетный файл)
call d:\subversion\repos\rts\hooks\mail %1 %2
И mail.bat был похож на это:
copy d:\subversion\repos\RTS\hooks\Commitmsg.txt %temp%\commit.txt
copy d:\subversion\repos\RTS\hooks\subjbase.txt %temp%\subject.txt
svnlook info -r %2 %1 >> %temp%\commit.txt
echo Revision %2 >> %temp%\commit.txt
svnlook changed -r %2 %1 >> %temp%\commit.txt
svnlook author -r %2 %1 >> %temp%\subject.txt
c:\utils\blat %temp%\commit.txt -t <me@my.email.com> -sf %temp%\subject.txt -server ServerName -f "SVN Admin <svn@my.email.com>" -noh2
самый большой глюк в письменной форме, который сцепляет SVN, - то, что у Вас не могло бы быть в основном установки среды - никакой путь exe, никакой временный путь, и т.д. Хотя, возможно, это улучшено в более свежих сборках SVN.
Seconding Matt Miller на каналах RSS.
существует полезный инструмент, названный WebSVN, который предлагает каналы RSS каждого репозитория и отдельных ответвлений/тегов/папок с полными сообщениями о фиксации. Это - также большой веб-интерфейс для того, чтобы быстро посмотреть на истории файла и commits/diffs, не имея необходимость выполнять обновление и открывать Вашего предпочтительного редактора.
Существует связанный вопрос здесь на рычагах постфиксации. Лично, я предпочитаю отправлять сообщение во что-то, от чего я могу получить канал RSS, поскольку электронное письмо на фиксацию перегрузило бы мой ящик входящих сообщений довольно быстро.
Вы захотите ознакомить себя с рычаги репозитория , особенно рычаг постфиксации .
Взгляните на автономное инструмент Subversion Notify (Windows только!) Это может сделать пользование электронной почтой на фиксации и также намного больше!
Вы могли использовать buildbot. Это - инструмент, который может принять произвольные меры каждый раз, когда регистрация происходит. Это - полнофункциональная непрерывная система интеграции, но если Вы просто хотите электронные письма, это может, конечно, обработать это. Это имеет плагины для множества SCMs включая SVN.
В каталоге "hooks" вашей конкретной ветки Subversion есть 9 файлов шаблонов, которые помогут вам начать работу.
Ключевой момент: Subversion не будет запускать какие-либо файлы, пока они не будут переименованы. Чтобы post-commit.tmpl запускался под unix, переименуйте его в post-commit. В Windows переименуйте его в post-commit.bat или post-commit.exe. Subversion не выполняет файл, если он назван «post-commit.tmpl» или «post-commit.sh» или подобное.
Также убедитесь, что файл запускается тем же пользователем, который запускает Subversion.