1

通常、リポジトリにコミットするときは、svn ci file1 file2 file3 etc -m "これはコミット中の変更に関するメッセージです" と実行します。

私は現在、別のコンピューターで作業しています (通常の Ubuntu ではなく Fedora を実行しています)。

svn: Commit failed (details follow):
svn: '/home/[path]/[word]' is not under version control

[word] は、コミット メッセージの 2 番目の単語です。(たとえば、上記の例 (「これはメッセージです...」) では、「is」 )。

Fedora で SVN の動作が異なるとは思いませんか?
この問題の原因は何ですか?ここで -m フラグを使用するにはどうすればよいですか?

4

4 に答える 4

3

私は同じ問題に遭遇しました。ターミナルで直接コミットしようとすると、正常に-m動作します。しかし、スクリプトを使用してコミットしようとすると、コメント文字列の最初の単語しか取得できません。オプションを使用しても--non-interactive役に立ちませんでした。

最後に回避策として、スクリプトでコメント文字列を含む一時ファイルを作成し、--fileオプションを使用して commit コマンドのコメントを提供しています。

echo ${COMMENT[$i]} > .tempistan
if [ -n "${FILES_TO_COMMIT[$i]}" ]; then
    svn_cmd="/usr/bin/svn --non-interactive commit --file .tempistan ${FILES_TO_COMMIT[$i]}"
...
于 2012-12-12T10:35:58.350 に答える
0

コメントは-m最初に行く必要があります...

$ svn ci -m "changes" file1 file2 file3 
于 2012-08-16T05:34:27.763 に答える
0

標準の Unix コマンドでは、パラメータはファイル名の前に置く必要があります。

$ svn ci -m "This is a message about the changes I'm committing." file1 file2 file3 etc.

2 つのシステムの Subversion の違いではなく、使用されているシェルに違いがある可能性があります。シェルはコマンドを解析し、ファイルとパラメーターをコマンドに送信します。このようにして、シェルはファイルの展開を処理します。

-mファイル名の前にパラメーターを入れてみてください。コミット メッセージを引用符で囲んでください。

于 2012-08-16T02:22:06.563 に答える
0

問題は、svn が /usr/bin/svn を呼び出す関数であり、コミッターがチェックイン時にコンピューターの共有ユーザー名を使用することを許可しないということでした。

それでも面倒ですが、/usr/bin/svn を使用できます。コミッターは、-m フラグを使用しなくても nano にメッセージを入力できます。

問題の関数を明らかにした「type svn」を提案してくれた@David_Wに感謝します。

于 2012-08-16T15:00:42.960 に答える