問題タブ [dcommit]
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.
git - git svn dcommit の前にアーカイブを作成するにはどうすればよいですか?
svn サーバーにプッシュするときに、プロジェクトの zip アーカイブを作成しようとしています。私の古いセットアップでは、これを行うためにリモート git リポジトリで post-receive フックを使用していました。ただし、現在svnを使用しており、svnサーバーを所有していないため、そこに何も置くことができません。次の pre-push フックをセットアップしましたが、これは で実行されませんgit svn dcommit
:
どのフックを使用できるかについてのアイデアはありますか?
ありがとう!
git - sourceforge への dcommit - .git/config と author ファイルを微調整するにはどうすればよいですか?
私の設定の関連部分は次のとおりです。
試した:
ご覧のとおり、私は master にいます (ここでは、git ブランチから 1 つのコミットを選んだだけです。派手なマージなどはありません)。
2 つの質問があります。
- config で URL を微調整するにはどうすればよいですか? またはflagに何
<URL>
を渡す必要がありますか?--commit-url <URL>
何かを台無しにして、間違ったブランチでコミットしてしまうことはしたくありません (ご覧のとおり、svn レイアウトは非標準です)。 実際、私は別の変更をコミットしています。コミットメッセージを編集して追加しました:
where
AUTHOR
は SVN 構成の名前と一致しますが、一致EMAIL
しません。著者が適切に記録されるには、これで十分ですか? 電子メールはSVN側に違いをもたらさないと思います
SVNレポを台無しにしたくないので、特に確認したいだけです。私はむしろ押しのけたいhttps
。
git - Git svn rebase:ファイルが古くなっています - 末尾の空白
git svn の使用中に問題が発生しました。主に Windows のユーザーが使用するレポートがありますが、Linux を使用しています。
このレポで変更を行いましたが、今日は次の後に取得しましたgit svn dcommit
:
ローカル リポジトリにクリーン コミットがありますが、git svn dcommit
. コミットするファイルの末尾に空白がありますが、問題ありません。
私は何をすべきか ?
私は多くのことを試しまし.gitconfig
たが、どれもうまくいきませんでした。現時点の.gitconfig
commit - SVN リポジトリに新しいコミットがある場合、dcommit が自動的にリベースしないようにします
を実行するgit svn dcommit
と、git-svngit svn rebase
は、SVN リポジトリに存在するすべてのコミットがコミットされているブランチに統合されていない場合と同等のことを自動的に行います。この動作を無効にすることはできますか? デフォルトでは非早送りプッシュで失敗するgit svn docmmit
ように、代わりに失敗したいと思います。git push
私はこの振る舞いについて話している:
その後、リベースされたコミットは自動的にコミットされます。
git - 2 チームの git-svn bridge の一般的なワークフロー
最近、GIT-SVN ブリッジについて多くのことを読んで、自分で試してみましたが、どういうわけか、物事が荒くなると失敗します。
環境 私たちは 2 つのチームです。一方は SVN を使用し、もう一方は Rebel で GIT を使用します。同期するために、2 つのリポジトリ間にブリッジを作成しました。SVN チームには x 人の開発者が 1 日に 10 回プッシュし、ほとんどが赤いビルドを持っています。GIT チームには 6 人の開発者がいて、週に 1 回だけフェッチするか、コミットするものがあるときにビルドをほとんどグリーンに保ちたいと考えています。
ユースケース: 「ブリッジ」は (まだ) 自動化されていないため、自分のコンピューター上にあるため、ブランチをマージして正しくコミットする責任があります。そのため、GIT チームは 2 つに分かれています。一部はブランチ「branch1」で作業し、残りは「branch2」で作業しています。それらは常にペアで機能するため、「branch1」が完了すると、次のタスクのために別のブランチを作成します。
私がやろうとしたこと: 明確にするために、「masterSpace」というマスターからブランチを作成しました。私は毎朝 master で git-svn rebase を実行し、変更を masterSpace にマージします。開発者は、必要に応じて、開発者が何かをコミットする場所で、masterSpace の「branch1」から作成します。それらが完了したら、SVN ですべてをコミットする必要があります。私はこのようにしてみました
次に、開発者はこの masterSpace からすべてを最新の状態にして新しいブランチを作成し、プロセスを繰り返します。
問題: 単一のコミットを持つブランチでこれを試してみましたが、うまく機能しましたが、2 週間ほどの作業の後、状況が悪化し、ワークフローが失敗しました。私が decommit した後、同じコミットが master と "masterSpace" で異なる ID を持っていたので、次に decommit しようとしたときに、多くの競合が発生しました。master を masterSpace にマージした後でも。次のような簡単なシナリオも試しました。
この後、私は 10 コミット先のようでした (前のコミットの ID のためだと思います)。だから...行き止まり
Q1: 解決策は? GIT チームと SVN チームの両方が同期して平和的に作業できるように、環境とユースケースの正しいワークフローは何でしょうか? 「masterSpace」は冗長で、思ったように動作しないと判断しました。それでも、チームが時間やコードを無駄にしないように、dcommit の迅速な解決策を見つけなければなりません。役立つ情報: ブランチは約 2 週間ごとに変更されます。終了したら、使用したブランチを破棄して、マスターから別のブランチを作成できます
Q2: すべてを自動的に作成する方法は? 近い将来、「橋」を Jenkins に移す予定です。自動的に機能させるための解決策を見つけることは可能でしょうか? 「jenkinsbranch」のブランチをマージするようなもの。Jenkins はこのブランチを自動的にビルドします。緑色の場合はコミットしません。そうでない場合は、ビルドを修正する別のプッシュを待ちます。
私の最初のシナリオでは、「masterSpace」をジェンキンの「マスター」として使用する予定でした。開発者は自分のブランチを「masterSpace」にマージし、jenkins は svn-rebase を作成して自動的にビルドし、緑色の場合はすべての変更を dcommit します。それ以外の場合は、開発者がビルドを修正するのを待ちます。でも…どうやら私が間違っていたようです。
TL:DR チームが 2 つの異なるブランチで数週間作業し、SVN でコミットを解除したい (そして SVN と同期したい) 場合、通常のワークフローはどうなりますか?
git - 構文のどこが間違っていますか? (git から svn に移行するためのバッチ ファイル)
いくつかの git リポジトリを subversion に移行する必要があります。
いくつかのプロジェクトには、保存したい多くの歴史があります。また、著者名は同じままでなければなりません。
これを達成するための他の方法をいじくり回して探した後、私はまだそれを適切に動作させることができないようです.
移行する必要がある git リポジトリは、c ドライブのローカル リポジトリです。これらのリポジトリを移行する必要がある svn サーバーは、ローカル ネットワーク上にあります。
これは私がこれまでに思いついたものです:
実行しようとすると、次のエラーも表示されます。
「HEAD 履歴から上流の SVN 情報を特定できません。」
さて、人々が私に言う前に、私は以前にも同様の質問がここで尋ねられたことを知っています.私はそれらの多くを読みました.
どんな助けでも大歓迎です。
コンソール出力:
git - 「git svn dcommit」でサブモジュールを無視するには?
「git svn dcommit」が次のエラーで失敗する
6aa885dabeb4f7d78ffcf45f6eb720c60a3e5b50 は /build/git/share/perl5/Git/SVN/Editor.pm 行 440 のリポジトリに存在しません
/build/git/libexec/git-core/git-svn 行 1017 でオブジェクト 6aa885dabeb4f7d78ffcf45f6eb720c60a3e5b50 を読み取れませんでした
この問題は、後で git リポジトリに追加されたサブモジュールが原因であることがわかりました。git svn dcommit
git リポジトリに影響を与えることなく、サブモジュールのコミットを無視する方法はありますか。
ノート:
Filter-branch オプションを使用してサブモジュールを回避して履歴を書き換える解決策を見つけましたが、それは既に運用環境にあるリポジトリを改ざんすると思います。