Проблема:
19/06/10 Обновление: Больше проблем с доказательствами на стороне сервера. Получение этой ошибки в командной строке Windows 7 (полный обратный вызов см. Ниже):
URLError: <urlopen error [Errno 10054] An existing connection was forcibly closed by the remote host>
abort: error: An existing connection was forcibly closed by the remote host
При попытке отправить набор изменений, который содержит 6 больших файлов (.exe, .dmg и т. Д.), На мой удаленный сервер, мой клиент (MacHG) сообщает об ошибке:
"Ошибка во время Push. Сообщено Mercurial
ошибка номер 255: прервать: ошибка HTTP
404: не найдено "
Что вообще означает ошибка ?! Единственное, что уникально (что я могу сказать) об этом коммите, это размер, тип и имена файлов. Как определить, какой именно файл в наборе изменений не работает? Как я могу удалить поврежденную ревизию из репозитория? В другом посте кто-то сообщал об использовании расширений "mq" для эффективного удаления ошибочного набора изменений из истории в репозитории, но mq выглядит слишком сложным для того, что я пытаюсь решить.
Справочная информация:
Я могу отправлять и извлекать следующее: исходные файлы, каталоги, файлы .class и файл .jar на сервер и с сервера, используя MacHG и toirtoise HG.
Я успешно ввел в свой локальный репозиторий первое добавление 6 больших установочных файлов .exe, .dmg и т. Д. (Всего около 130 МБ).
В следующем коммите к моему локальному репозиторию я удалил («не отслеживал» / забыл) 6 файлов, вызывающих проблему, однако предыдущая (неудачная) ревизия все еще ставится в очередь для отправки на сервер (т.е. мой локальный хост пытаясь нажать «добавить», а затем «удалить» на удаленном сервере - и придерживаться принципа «держать все в истории» системы контроля версий).
Я могу фиксировать .txt .java файлы и т. Д. С помощью TortoiseHG с ПК с Windows. На самом деле я не тестировал фиксацию или отправку одинаковых больших файлов с помощью TortoiseHG.
Пожалуйста, помогите!
Установка:
Клиентские приложения = MacHG v0.9.7 (SCM 1.5.4) и TortoiseHG v1.0.4 (SCM 1.5.4)
Сервер = HTTPS, IIS7.5, Mercurial 1.5.4, Python 2.6.5, настройка с использованием следующих инструкций:
http://www.jeremyskinner.co.uk/mercurial-on-iis7/
В IIS7.5 обработчик CGI сконфигурирован для обработки ВСЕХ глаголов (не только GET, POST и HEAD).
Мой файл hgweb.cgi на сервере выглядит следующим образом:
#!/usr/bin/env python
#
# An example hgweb CGI script, edit as necessary
# Path to repo or hgweb config to serve (see 'hg help hgweb')
#config = "/path/to/repo/or/config"
# Uncomment and adjust if Mercurial is not installed system-wide:
#import sys; sys.path.insert(0, "/path/to/python/lib")
# Uncomment to send python tracebacks to the browser if an error occurs:
#import cgitb; cgitb.enable()
from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb('C:\inetpub\wwwroot\hg\hgweb.config')
wsgicgi.launch(application)
Мой файл hgweb.config на сервере выглядит следующим образом:
[collections]
C:\Mercurial Repositories = C:\Mercurial Repositories
[web]
baseurl = /hg
allow_push = usernamea
allow_push = usernameb
Вывод из командной строки из моего macbook (установлены и Mercurial, и MacHG) с использованием флагов -v и --trackback:
macbook15:hgrepos coderunner$ hg -v --traceback push
pushing to https://coderunner:***@hg.mydomain.com.au/hg/hgrepos
searching for changes
3 changesets found
Traceback (most recent call last):
File "/Library/Python/2.6/site-packages/mercurial/dispatch.py", line 50, in _runcatch
return _dispatch(ui, args)
File "/Library/Python/2.6/site-packages/mercurial/dispatch.py", line 471, in _dispatch
return runcommand(lui, repo, cmd, fullargs, ui, options, d)
File "/Library/Python/2.6/site-packages/mercurial/dispatch.py", line 341, in runcommand
ret = _runcommand(ui, options, cmd, d)
File "/Library/Python/2.6/site-packages/mercurial/dispatch.py", line 522, in _runcommand
return checkargs()
File "/Library/Python/2.6/site-packages/mercurial/dispatch.py", line 476, in checkargs
return cmdfunc()
File "/Library/Python/2.6/site-packages/mercurial/dispatch.py", line 470, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
File "/Library/Python/2.6/site-packages/mercurial/util.py", line 401, in check
return func(*args, **kwargs)
File "/Library/Python/2.6/site-packages/mercurial/commands.py", line 2462, in push
r = repo.push(other, opts.get('force'), revs=revs)
File "/Library/Python/2.6/site-packages/mercurial/localrepo.py", line 1491, in push
return self.push_unbundle(remote, force, revs)
File "/Library/Python/2.6/site-packages/mercurial/localrepo.py", line 1636, in push_unbundle
return remote.unbundle(cg, remote_heads, 'push')
File "/Library/Python/2.6/site-packages/mercurial/httprepo.py", line 235, in unbundle
heads=' '.join(map(hex, heads)))
File "/Library/Python/2.6/site-packages/mercurial/httprepo.py", line 134, in do_read
fp = self.do_cmd(cmd, **args)
File "/Library/Python/2.6/site-packages/mercurial/httprepo.py", line 85, in do_cmd
resp = self.urlopener.open(req)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 389, in open
response = meth(req, response)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 502, in http_response
'http', request, response, code, msg, hdrs)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 427, in error
return self._call_chain(*args)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 361, in _call_chain
result = func(*args)
File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py", line 510, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 404: Not Found
abort: HTTP Error 404: Not Found
macbook15:hgrepos coderunner$
Вывод с хоста Windows 7 (на котором установлен только TortoiseHG), который пытается отправить те же файлы на сервер (другой набор изменений, но содержит те же 6 добавлений файлов, что и набор изменений, загружаемый из macbook)
c:\repositories\hgrepos>hg -v --traceback push
pushing to https://coderunner:***@hg.mydomain.com.au/hg/hgrepos
searching for changes
1 changesets found
Traceback (most recent call last):
File "mercurial\dispatch.pyo", line 50, in _runcatch
File "mercurial\dispatch.pyo", line 471, in _dispatch
File "mercurial\dispatch.pyo", line 341, in runcommand
File "mercurial\dispatch.pyo", line 522, in _runcommand
File "mercurial\dispatch.pyo", line 476, in checkargs
File "mercurial\dispatch.pyo", line 470, in <lambda>
File "mercurial\util.pyo", line 401, in check
File "mercurial\commands.pyo", line 2462, in push
File "mercurial\localrepo.pyo", line 1491, in push
File "mercurial\localrepo.pyo", line 1636, in push_unbundle
File "mercurial\httprepo.pyo", line 235, in unbundle
File "mercurial\httprepo.pyo", line 134, in do_read
File "mercurial\httprepo.pyo", line 85, in do_cmd
File "urllib2.pyo", line 389, in open
File "urllib2.pyo", line 407, in _open
File "urllib2.pyo", line 367, in _call_chain
File "mercurial\url.pyo", line 523, in https_open
File "mercurial\keepalive.pyo", line 259, in do_open
URLError: <urlopen error [Errno 10054] An existing connection was forcibly closed by the remote host>
abort: error: An existing connection was forcibly closed by the remote host
c:\repositories\hgrepos>
Это вопрос поддержания жизни? IIS7.5 виноват? Python 2.6.5 виноват?