問題タブ [git-svn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
svn - git-svn を使用して svn ブランチを切り替える方法は?
複製
私は git-svn を使用して、svn 上の他の誰かによる開発を追跡しています。gti-svn を使用して、ある svn ブランチから別の svn ブランチに切り替える方法を理解しようとしています。私が見つけることができたすべての例は、実際のブランチの代わりに場所を切り替える方法として svn switch を使用することについて話しています。
基本的に、svn fetch を使用して、/svn/branch/1.2 ではなく、/svn/branch/1.3 からプルを開始したいと考えています。
svn - git svn dcommit to sourceforge は失敗しますが、svn 経由で直接動作します
Subversion を使用する SourceForge のオープン ソース プロジェクトに取り組んでいます。数日前git svn clone
、Git を使用して変更を追跡し始めました。
しばらくしてdcommit
、変更を上流に戻そうとしました。しかし、それは次のエラーで失敗しました:
Autorisierung schlug fehl: MKACTIVITY von »/svnroot/housebot/!svn/act/b8dbd0ff-f224-4899-b6fe-06a514fa2dbf«: Autorisierung schlug fehl: Could not authenticate to server: rejected Basic challenge (https://housebot.svn.sourceforge.net) at /sw/lib/git/git-svn line 3649
(ドイツ語は無視してください。「承認に失敗しました」などと表示されます。) そのため、SSH キーが正しく設定されていないと思いましたが、svn を介して変更をコミットしようとすると、完全に正常に動作します。
だから私はここで実際に何がうまくいかないのか途方に暮れています。svn と git svn の両方で機能するか、まったく機能しないかのいずれかであると想定していました。
svn - svn リポジトリを既存の git リポジトリに追加しますか?
git svn init を使用して git で svn リポジトリを追跡できることは知っていますが、これはまったく新しいリポジトリを作成する場合のためのものです。
私の状況では、現在既に既存の git リポジトリがあり、現在の git リポジトリのリモート ブランチにすることで svn リポジトリのトランクを追跡したいと考えています。
助言がありますか?
git - Subversionリポジトリから最後のnリビジョンをgit-svnクローンする方法は?
問題
Subversion リポジトリから git-svn を使用して浅いコピーを作成するにはどうすればよいですか? たとえば、最後の 3 つのリビジョンだけをプルするにはどうすればよいですか?
オプションを使用すると、このgit clone
コマンドは Git リポジトリから最後の n リビジョンを取得できます--depth
。つまり、リポジトリの浅いコピーを取得します。例:
git-svn に同様のオプションはありますか?
これまでの私の発見
これまでのところ、プルするリビジョンが-rN
どこにあるかというオプションしか見つかりませんでした。N
例:
ドキュメントによると、 を使用する可能性があります-r$REVNUMBER:HEAD
。エラーメッセージを返した最後の3つのリビジョンを取得するために、次のことを試しました。
そのため、3 番目で最後のリビジョン 534 の実際の番号に置き換えHEAD~3
ました。これは機能しましたが、最初に 3 番目で最後のコミットのリビジョン番号を把握する必要があります。
ドキュメンテーション
git-svn - git-svn fetch 中に RA レイヤー要求が失敗しました
git svn を使用して、Subversion リポジトリと同期します。
エラーメッセージが表示されました:
なぜ、どうすればこれを修正できますか?
git - Git Svn の競合の解決
私は Git-Svn を使用して職場で Svn リポジトリとやり取りしていますが、私の人生で競合を効果的に解決する方法を見つけることができないようです。このトピックに関する他の質問を読みましたが、明らかに、私は常にある種の無限ループに陥っているように見えるため、さらに改善する必要があります。リベースし、mergetool (meld) を使用して競合を解決し、すべてが終了したら、dcommit を実行しようとすると、コミット エラー中にマージ競合が発生します。
これが重複しているように感じるのは承知していますが、フラストレーションから、私がこれについてどのように行っているかについて非常に具体的な詳細を示して、もう一度質問させていただきます。
私のセットアップ:
リモート ブランチ (svn/trunk)、ローカル ブランチ (trunk)、および通常作業する別のローカル ブランチ (working-trunk) があります。トランクは svn/trunk からチェックアウトされ、working-trunk はトランクからチェックアウトされました。
これが私がやってきたことです:
- 私のトランクで、
git svn rebase
(競合を返します) git mergetool
- [そのファイルの競合を解決する]
- マージされたファイルを meld から保存し、meld を閉じます。
git add .
git rebase --continue
- 【すすぐ、繰り返す】
- を使用したかどうかを尋ねるメッセージが表示され
git add
たら、git rebase --skip
報告されたすべての変更の最後に到達すると、すべてが停止し、この時点で何をすべきかわからなくなる可能性があります。Git はコミットするものが何も表示されず、トランクに戻ったように見えます。Git では dcommit が許可されますが、その後すぐにリベースを試みると、解決したばかりの競合を再解決することになります。
ここには明らかに欠けている重要な部分がありますが、それが見えないだけで、多くの問題とフラストレーションを引き起こしています. Git ではマージは簡単かもしれませんが、そうではないことは確かです。
ありがとう。
更新:それが問題の一部 (またはすべて) である場合に備えて、私のワークフローを説明するために簡単な更新を捨てたかっただけです。
まず、svn/
プレフィックスを使用してリポジトリを複製すると、svn/trunk
リモート ブランチが作成されます。とすれば:
- リモートを
git co -b trunk svn/trunk
ローカルブランチにチェックアウトします。 - ローカルトランクが常にリモート トランクをミラーリングできるように、もう 1 段階の分離を
git co -b working-trunk
作成するために使用する作業ブランチを作成します。 - デフォルトのマスター ブランチを削除します (svn を使用する場合、「マスター」よりも「トランク」の観点から考える方が簡単だと思います)。
すべてのブランチを取得したら、通常のワークフローは次のようになります。
- working -trunkで、変更を加えてコミットします。
- 私
git co trunk
とgit svn rebase
. - 新しいコードがリベースされたと仮定すると、I
git rebase working-trunk
. git co working-trunk
git merge trunk
git rebase trunk
git co trunk
git merge working-trunk
git svn dcommit
たくさんの手順があることはわかっていますが、それがここや他の場所で誰もが推奨していることです。私の致命的な欠陥はそのプロセスのどこかにあるのでしょうか?
再度、感謝します。
git - SVN チェックアウトを変換して git を使用する (git-svn)
バージョン管理のためにsvnに保持されているソフトウェアを使用しています。git (git-svn) を使用したいのですが、ソフトウェアを使用するには多くのセットアップと構成が必要です。svn 経由ですべてのコードをチェックアウトするなど、すべてのセットアップを処理するツールがあります。
git-svn のすべてのドキュメント (私が見つけたもの) には、git-svn を使用して新たにチェックアウトする必要があります。
git-svn を使用できるように、既存の svn チェックアウトを変換する方法はありますか?
svn - MacPorts 経由でインストールした後、Mac OS X Leopard で git-svn が見つからない
わかりました、誰かがこの問題を抱えていて、私を助けてくれると確信しています。
OSX Leopard (10.5.6) で git-svn を動作させようとしています。MacPorts を使用して、次のようにインストールを実行しました: sudo port install git-core +svn
ただし、git-svn はインストールされておらず、使用できません。長い依存関係のインストール中にエラーが発生しなかったので、途方に暮れています。
ご意見をお待ちしております。
git - git-merge が行末の違いを無視することは可能ですか?
git merge
行末の違いを無視することは可能ですか?
多分私は間違った質問をしている...しかし:
使用してみましたが、特に事後config.crlf input
に適用したときに、物事が少し乱雑になり、制御不能になりました。
1 つには、事後にこの構成を適用しても、このオプションを適用する前にリポジトリにコミットされたファイルには影響しないようです。もう 1 つのことは、突然、すべてのコミットで、CRLF が LF に変換されているという迷惑な警告メッセージが大量に表示されるようになったことです。
正直なところ、どの行末が使用されているかはあまり気にしません。個人的には Unix スタイル\n
の方が好きですが、何でも構いません。私が気にかけているのはgit merge
、少し賢くなり、改行の違いを無視することだけです。
2 つの同一のファイルがある場合もありますが、異なる行末文字を使用しているという理由だけで、git はそれらを競合しているとマークします (競合はファイル全体です)。
アップデート:
git diff
がオプションを受け入れることがわかりました。このオプションも使用--ignore-space-at-eol
できるようにすることはできますか?git merge