2016-04-04 3 views
1

Javaでは、私はJGitと協力して、リモートリポジトリでいくつかのアクションを実行しています。しかし、バージョン間で疎なチェックアウトを連続して行うと:JGitの疎なチェックアウトがファイルを追加し続ける

checkout. 
    setCreateBranch(false). 
    setName(tag). 
    addPath("server/scripts/"). 
    setStartPoint(tag); 

最後のチェックアウトファイルが保存され、新しいチェックアウトファイルが追加されます。ディレクトリ内のファイル名が同じでない場合にのみ発生します。この方法でチェックアウトコマンドを使用すると、どうすれば回避できますか?

は、私は、ファイルが は、同じ名前を持つ「ダウンロード」しているとき、それは紛争をもたらす場合が私にはわからない、(この場合には、 スクリプト)チェックアウトをされているフォルダ内のファイルを削除することを考えました。

答えて

1

最初に、setCreateBranch()はデフォルトではfalseであることに注意してください。したがって、setCreateBranch(false)を明示的に呼び出す必要はありません。

さらに、あなたがaddPath()ためaddPath()setName() Javadocを混在させることはできませんと言う:

このオプションが設定されていない、どちらもsetCreateBranch(ブール値)ものsetName(String)をオプションが考慮されている場合。つまり、これらのオプションは排他的です。

ただし、表示される動作が正しいかどうかはわかりません。疑わしい場合は、コマンドラインgitで同じ結果が表示されるかどうかを確認し、JGitが異なる場合はfile a bug reportを確認してください。

Status status = git.status().call(); 
for(String fileName : status.getUntracked()) { 
    // delete fileName 
} 

孤立ファイルを回避するには、手動ですべての人跡未踏のファイルを削除するためにStatusCommandを使用することができます

関連する問題