問題タブ [repository]
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 - SVN リポジトリをどのように構成していますか?
何が良いですか?
A:
B:
使用するリポジトリ構造とその理由は?
svn - Subversion の大きなリポジトリのインポート/チェックアウト
Subversion で新しいリポジトリを作成するための私の通常のワークフローは、新しいリポジトリを作成し、リポジトリ ルートのチェックアウトを行い、ブランチ タグとトランク フォルダーを作成し、初期ファイルをトランクに配置することです。次に、この「初期インポート」のコミットを行い、チェックアウトしたリポジトリをハード ドライブから削除し、トランクのチェックアウトを行います。それから私は仕事を始めることができます。
ただし、大規模なインポートを処理する場合、数百メガバイト、およびオフサイトのバージョン管理ホスティング (http ベース) を考えると、この最初のインポートはコミットするのにかなりの時間がかかる可能性があります。さらに悪いことに、コミットした後、この巨大なトランクをもう一度チェックアウトする必要があります。
すでに存在するデータをもう一度チェックアウトすることなく、トランクのローカル コピーを使用する Subversion の方法はありますか?
git - git-svn で特定の svn ブランチをリモート リポジトリとして使用するにはどうすればよいですか?
警告の言葉:私はgit
一般的には反対です. 私のチームは で機能ブランチを使用しており、特定の機能ブランチでの作業を追跡svn
するために使用したいと考えています。git-svn
私は (大まかに) Andy Delcambre の投稿に従ってローカル リポジトリをセットアップしましたgit
が、これらの指示により、最近変更されgit
たブランチがリモート リポジトリとして選択されたようです。svn
問題は、それが私が気にかけているブランチではないということです。どのブランチgit-svn
が使用するかを制御するにはどうすればよいですか? それとも、私はこれに完全に間違っていますか?
更新: -T
、-b
、および-t
オプションを使用しました (私の場合、svn
レポには複数のプロジェクトがありますが、git
作業中のプロジェクトのみをレポに含める必要があるため)。
svn - 異なるプログラム間で開発されたライブラリのSubversionリポジトリレイアウト
私は、さまざまなライブラリを介して多くのコードを共有するいくつかの(かなり小さな)プログラムを担当しています。さまざまなプログラム(およびライブラリ)を開発し、すべてのプログラム間でライブラリの同期を維持するのに最適なリポジトリレイアウトは何でしょうか。
議論のために、2つのライブラリを持つ2つのプログラムがあるとしましょう。
- プログラム1
- Library1
- Library2
- プログラム2
- Library1
- Library2
当然、ライブラリのバグ修正と機能拡張は(最終的には)すべてのプログラムに統合されるはずです。ライブラリはさまざまなプログラムで作業しているときに作業しているため、外部定義を使用することは問題外のようです。
そのため、1つの場所を除いてすべてのライブラリをベンダーのブランチとして扱うことを考えましたが、これに最適なレイアウトが何であるかはわかりません。
私は次のようなことを考えていました。
- ライブラリ
- Library1(祖先)
- Library2(祖先)
- プログラム1
- Program1コード
- Library1(ベンダーブランチ)
- Library2(ベンダーブランチ)
- ..。
次に、Program1を開発するときに、Library2にいくつかの変更が加えられた場合、それらをリポジトリのLibraries部分にマージして戻し、必要に応じてそこから他のすべてのプログラムにマージします。
他のプログラムへのマージは常にすぐに行われるとは限りません。Program2で作業している人はリリースに近づき、最初にリリースを終了し、タグを作成してから、すべてのライブラリを更新する可能性があります。
これにより、しばらくすると多くのマージとメンテナンスの問題が発生するのではないかと少し心配していますが、これ以上の解決策は見当たりません。
繰り返しになりますが、これは私にはかなり一般的なユースケースのように思われるので、stackoverflowコミュニティに質問したいと思いました。これを実現するための最適なリポジトリレイアウトは何ですか?
svn - リポジトリ全体で svn:externals プロパティのすべての URL を移行する方法は?
SVN リポジトリをあるマシンから別のマシンに移動する過程にあり、新しいリポジトリの新しいドメイン名がそれに伴います。問題は、リポジトリ内に、リポジトリ内の他のプロジェクトへの svn:externals 参照がたくさんあることです。たとえば、svn:externals プロパティにある projectA があります。
...等々。すべての URL がこの特定のドメイン名を参照しているため、簡単に解析できます。すでに教訓を学んだので、これらの URL を「svn://localhost/」に移行しますが、まだチェックアウトできるように、リポジトリの履歴を調べて古い URL をすべて書き換える方法を見つける必要があります。リンクが壊れていない、これらのプロジェクトの古いリビジョン。
どうすればこれを行うことができますか?
svn - レガシー プロジェクト (日付の付いた一連のフォルダー) を Subversion にインポートする
リビジョンの履歴が保持されるように、「バージョン管理システム」が一連の日付付きフォルダーであるレガシープロジェクトをSVNにインポートする簡単な方法を知っている人はいますか?
私が継承したプロジェクトはバージョン管理下になく、何百ものフォルダーがあり、それぞれの日付は次のようになっています: 2006-11-26、2006-11-27 など... (数週間) 何も変更されていない場合でも、フォルダー。
私が気に入っているのは、最も古いフォルダーで新しいリポジトリを作成し、すべてのサブバージョン コマンドを順次かつ自動的に適用して、後の各フォルダーを新しいリビジョンに変換するスクリプト/ツールです。
それが理にかなっていることを願っています。私の古いシェル スクリプターは、自分でこれに取り組もうとする誘惑にかられますが、a) 最初に想像したよりも多くの作業が必要であると確信しています。b) 時間の有効活用ではありません (私はシェル スクリプトの専門家ではありません)。シェルスクリプトを書く)、c) 誰かがすでにこれを行っているに違いない。
追加クレジット: スクリプト/ツールで、フォルダ名に基づいてタイムスタンプ プロパティも変更し、Subversion の履歴がより現実に近くなるようにします。
すべてが理にかなっていることを願っています。
助けてくれてありがとう。
PS 私はこれをすべて Linux で行いたいと思っていますが、(あえぎ!) Windows ソリューションがある場合、物乞いは選択者になることはできませんよね?
svn - バージョン管理リポジトリをどのように整理しますか?
まず、私はこれについて知っています:社内ソフトウェアプロジェクト用のSubversionリポジトリをどのように編成しますか? 次に、実際の質問です。私のチームはリポジトリを再構築しており、リポジトリを整理するためのヒントを探しています。(この場合はSVN)。これが私たちが思いついたものです。1つのリポジトリ、複数のプロジェクト、複数のsvn:externals相互参照があります
語彙をクリアするには:ソリューションは単一の製品を意味し、プロジェクトはVisual Studioプロジェクトです(単一の.dllまたは単一の.exeになります)
これが、リポジトリのレイアウトを計画している方法です。主な問題は、複数のソリューションがあることですが、ソリューション間でプロジェクトを共有したいと考えています。これらの共有プロジェクトを独自のソリューションに移動することには意味がないと考え、代わりにsvn:externalsを使用してソリューション間でプロジェクトを共有することにしました。また、共通のツールセットとサードパーティライブラリをリポジトリ内の1つの場所に保持し、それらがsvn:externalsを使用して各ソリューションでそれらを参照するようにします。
このレイアウトについてどう思いますか?特にsvn:externalsの使用について。これは理想的な解決策ではありませんが、すべての長所と短所を考慮すると、私たちが考えることができる最高のものです。どのようにそれをしますか?
svn - ひねりを加えた Web Subversion リポジトリ閲覧ツール
Web SVN リポジトリ ブラウジング ツールについて多くの質問を受けました。ただし、私が調べたもののうち、特定のユーザー名/パスワードを構成する必要があるか、利用可能なリポジトリへのデフォルトのアクセスに依存するか、Subversion の外部に別のユーザー データベースが必要です。
企業環境では、SVN リポジトリ管理者がリポジトリをロックダウンして、アクセスできる「ゲスト」または「匿名」アカウントが存在しないようにすることができます。また、これらへのアクセスにドメインのユーザー名/パスワードを使用している場合、実際のユーザーの認証の詳細をそのような構成ファイルに埋め込むことは、あまり良い考えではありません。
ユーザーからユーザー名/パスワード情報を取得し、それを使用して、代わりに行われたSVNリクエストを認証するSubversionリポジトリブラウザはありますか?
編集:認証された HTTPS を介して提供される SVN リポジトリが既にあることを述べておく必要があります。これには、TortoiseSVN や Subclipse などのシック クライアントを介してアクセスします。以前のリビジョンや差分などを閲覧できる Web ベースのクライアントを探していますが、リポジトリに接続するために事前に構成された認証情報は必要ありません。
svn - これは、複数のプロジェクトやベンダーでSVNリポジトリを作成するための正しいステップバイステップおよび組織ですか?
私はRedBeanSoftware SVN Bookをかなり読んだことがあり、SOに関するいくつかの質問も読んだことがありますが、これを最初にステップバイステップで正しい方法で実行していることを確認したいと思います。使い始めました。これは正しいです?
- SVNをインストールします。
/ usr / local/svnにSVNリポジトリを作成します。ディレクトリ構造は次のようになります。
/li>リポジトリ編成(プロジェクトとベンダーを含む)のコマンドラインからフォルダーを作成します。
/li>ベンダーコードを正しいプロジェクト名でベンダーフォルダにチェックアウトします。
- ベンダーコードを正しいプロジェクト名でトランクにエクスポートします(プロジェクトトランクファイルがまだないため、マージは必要ありません)。
- /svnroot/conf/passwdおよび/svnroot/conf/svnserve.confにusers/permissionsを作成します。
- svnserveが実行されていることを確認し、ローカルSVNクライアント(TortoiseSVN)で、必要なプロジェクトのトランクをチェックアウトします。
これをパブリックURLで提供する必要がないため、Apache用に構成していません。サーバーは私たちのネットワークにはありませんが、私たちが借りている専用のCentOSボックスです。考えやアドバイスをありがとう。
編集:
そもそもコードやプロジェクトがないので混乱していると思いますので、ベンダーのコードから始めています。ベンダー、トランク、ブランチ、タグのサブフォルダーを含むproject_nameを含むディレクトリ構造をサーバー上のどこかに作成し、それをリポジトリにインポートしてから、ベンダーからベンダーフォルダーにコードをインポートする必要がありますか?ベンダーから更新を取得し、それらの更新をトランクに加えた変更とマージできるという考え方です。
maven - Maven スナップショット リポジトリとリリース リポジトリ
スナップショットリポジトリとリリースリポジトリの違いは何ですか?
これは、リポジトリ (Artifactory、Nexus など) のセットアップに関するものです。