1

Linux Eclipse プロジェクトを会社の svn にチェックインしました。よく働く。

このプロジェクトは、Windows でクロス コンパイルすることを目的としています。

これまでは、OS 間でソース ファイルを移動するだけでした。しかし、私はsvnにこれをさせたいと思っていました。Eclipse linux src を VS プロジェクト ディレクトリにチェックアウトするだけです。違う!

正しいソースが svn からチェックアウトされ、正常に機能しました。しかし、チェックインしようとすると、「コミットが完了していないファイル名が競合している」というエラーが発生し続けました。私も何も変わっていませんでした!

少し確認しました。Linux の src ディレクトリはほとんどソースとヘッダーだけであることがわかりました。MSVS 側では、プロジェクト ディレクトリにはソースとヘッダーが含まれていますが、projname.vcproj などの名前で VS によって使用される一連のファイルも含まれています。

そこで、スクラッチ ディレクトリ .\fred にチェックアウトしました。.\fred をチェックインしました。問題ありません。.fred、xxx.xxx に新しいファイルを追加しました。報告されたチェックイン:

svn: E200009: Commit failed (details follow):
svn: E200009: 'C:\Projects\fred\xxx.xxx' is not under version control

これらのコミットされていない Visual Studio ファイルについて疑問に思います。

それで、それらのファイルは私の問題ですか?それらはコミット操作を壊していますか?

別の解決策として、VS ファイルを svn の src ディレクトリに追加することを考えています。linux/eclipse がそれらをチェックアウトする場合、eclipse にそれらを無視するように指示できます (私にとっては無視されるだけだと思います)。このアプローチに関する考えや推奨事項はありますか?

(ちなみに、Linux側にはまだ新しいソースがあったので、壊れたものは安全に復元できました。)

4

1 に答える 1

0

だからここに私が今取り組んでいる1つの解決策があります。それがどれほど完全に安定しているかはわかりません。

警告:私が使用しているプロジェクトは、MSVSプロジェクトとしてすでに存在しています。

MSVSソリューションディレクトリで、ソースディレクトリの名前を変更します(MSVSはソースディレクトリ名をソリューションディレクトリ名と一致させるため、ソースディレクトリの名前がsrcではない可能性があります)。tempなどのソリューションに関係のない名前に変更します

SVNはsrcをチェックアウトします(Eclipseはsource dirs srcを呼び出すようなものです)。

ソースディレクトリにcdします。次のコマンドを発行します。

svn changelist msvs *.cpp *.h

必要に応じて*.cを追加します。「msvs」はチェンジリスト名です。それはあなたがtiになりたいものなら何でもかまいません。

これにより、チェックアウトされたディレクトリのチェンジリストが作成されます。

次に、残りのファイルを一時ディレクトリからソースディレクトリにコピーします。

チェックインを行う必要がある場合は、ソースディレクトリにcdして、次のコマンドを発行します。

svn ci --changelist msvs  

ノート。これを機能させるには、srcディレクトリにいる必要があります。

于 2013-01-15T12:21:26.307 に答える