Svn: E000002: Ошибка коммита

Я пытаюсь опубликовать свой плагин Wordpress в репозиторий svn, который они мне назначили. Я использую git (not svn), поэтому я пытаюсь использовать git -svn, но я получаю следующую ошибку, когда пытаюсь нажать свое локальное репо git, используя эти инструкции:

$ git svn dcommit
Committing to http://plugins.svn.wordpress.org/wp-github-pipeline/trunk ...
    A   .bowerrc
    A   composer.json
    A   composer.lock
   ...
    A   vendor/guzzle/guzzle
b3f5050cb6270c7a728a0b74ac2de50a262b3e02 doesn't exist in the repository at /usr/local/git/lib/perl5/site_perl/Git/SVN/Editor.pm line 401.
Failed to read object b3f5050cb6270c7a728a0b74ac2de50a262b3e02 at /usr/local/git/libexec/git-core/git-svn line 1011.

Я много искал (см. ниже "Другие ресурсы" ), и я понимаю, что эта проблема обычно возникает из-за использования подмодулей в сочетании с git svn. В какой-то момент у меня был подмодуль, но я сделал файлы и удалил .gitmodules, используя git filter-branch описанный здесь, но проблема не устранена. Поэтому я искал больше, и кажется, что использование композитора и/или беседки может вызвать ту же проблему.

Я не пробовал удалить vendor/ из моего .gitignore и передать все сторонние библиотеки... У меня есть подозрение, что это может сработать, но даже если это не будет устойчивым долгосрочным решение.дел >

Есть ли способ сообщить git -svn игнорировать мой .gitignore и загрузить все vendor/ files?. Или есть другой способ избежать того, чтобы ВСЕ ЗАЯВЛЕНИЯ в репо? Или это другая проблема, чем то, что я думаю? Спасибо заранее!

ОБНОВЛЕНИЕ 1 Я удалил vendor/** из моего .gitignore и зафиксировал зависимости в моем локальном репозитории (но не нажал на исходный код). Но я получил ту же ошибку!

ОБНОВЛЕНИЕ 2 Я скопировал все файлы в новый каталог и попытался выполнить базовую транзакцию svn. Нет подмодулей. Все поставщики/файлы включены. И я получаю еще одну ошибку:

$ svn ci -m 'Adding version 1.0 files'
Sending        trunk/.gitignore
Adding         trunk/README.md
...
Adding         trunk/vendor/wp-cli/wp-cli/utils/wp-completion.bash
Adding         trunk/wp-cli.yml
Adding         trunk/wp-github-pipeline.php
Transmitting file data .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................svn: E000002: Commit failed (details follow):
svn: E000002: Can't open file '/home/svn/repos/wp-plugins/db/transactions/1232700-rw56.txn/props': No such file or directory

Я пробовал svn cleanup, и произошло то же самое.

ОБНОВЛЕНИЕ 3 Я попытался начать с нуля, и произошла ТОЛЬКО ошибка. Вот точная последовательность команд:

$ mkdir pipeline_svn2
$ svn co http://plugins.svn.wordpress.org/wp-github-pipeline pipeline_svn2
$ cd pipeline_svn2

[ copied all files into pipeline_svn2/ ]

$ svn add trunk/*
$ svn ci -m 'Adding v1.0 files'

[ lots of these... ]
Adding         trunk/wp-github-pipeline.php
Transmitting file data ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................svn: E000002: Commit failed (details follow):
svn: E000002: Can't open file '/home/svn/repos/wp-plugins/db/transactions/1233755-rx30.txn/props': No such file or directory

Это заставляет меня думать, что на сервере что-то напугано.

Другие ресурсы

Ответ 1

Я, наконец, дошел до конца этого...

После разговора с командой плагина Wordpress они рекомендовали использовать протокол https: (вместо http:):

Вместо использования http://plugins.svn.wordpress.org/wp-github-pipeline в качестве URL-адреса вашего плагина, используйте https://plugins.svn.wordpress.org/wp-github-pipeline.

Иногда прокси и различные маршрутизаторы и другие типы модификаторов трафика влияют на трафик SVN для некоторых людей. Использование https обеспечивает сквозное шифрование, предотвращая большинство из них, чтобы изменить трафик и вызвать такие проблемы.

Я внес изменения с помощью svn relocate, но он все еще не работает, но он дал более подробное сообщение об ошибке. Поэтому я сделал еще несколько исследований и нашел этот пост, который говорит о том, что моя новая ошибка может быть связана с разрешениями/аутентификацией.

Итак, при догадках, я повторно аутентифицировался после удаления файла в ~/.subversion/auth/svn.simple и сделал новый svn co и начал с нуля, используя https:, а затем, наконец, работает!

Я не уверен, была ли проблема связана с перенаправлением http → https или с проблемой аутентификации (у меня есть две учетные записи Wordpress.org).

Ответ 2

У меня была такая же проблема сегодня. В одном коммите я случайно заменил символическую ссылку на подмодуль. Были две проблемы:

  • изменение типа чего-то невозможно в одном коммите в svn, например file → directory, directory → file, file → symlink и т.д.
  • очевидно, что git подмодули являются признаком git и не могут быть переданы с помощью git svn

Я не вкладывал больше времени в выяснение, какая из этих двух проблем действительно остановилась git svn