it-swarm-ja.com

サーバーをインストールしないバージョン管理

Root権限を持たない多くのサーバーにsshアクセスできます。リモートサーバーに何もインストールしないリモートsshリポジトリで動作できるバージョン管理ユーティリティを知っていますか?

裸のgitリポジトリフォルダーを試しましたが、サーバーにスクリプト/バイナリ/インストールが必要なようです。また、移植性が低いため、gitは好きではありません。ポータブルバージョンはファイルが多すぎます

3
SystematicFrank

Fossil は、Linux、Windows、またはMac OSXで単一のバイナリにコンパイルされる分散ソース管理システムです。リポジトリには、統合されたバグトラッカーとwikiが自動的に付属しており、単一の実行可能ファイルがホスティングサーバーとして機能できるため、リポジトリにリモートでアクセスできます。

Fossilは、 SQLite の最初の作成者であるD. Richard Hippによって開拓された2番目のプロジェクトです(FossilはSQLiteをバッキングストアとして使用するため、リポジトリ全体が1つのポータブルファイルに存在します)。

3

Bazaar はSFTPベースの 「ダムサーバー」 (サーバー側ではBazaarは不要)を読み取りおよび書き込みアクセスに使用できるようです。

注:私はBazaarを使用したことがなく、そのドキュメントをざっと見ただけです。

2
Chris Johnsen

Chris Johnsenが指摘しているように、Bazaarは、さまざまなプロトコル(SFTPなど)を使用してリポジトリデータをサーバーにアップロードできます。

実際、これが機能する方法は次のとおりです。ローカルマシンとユーザーBazaarにリポジトリ/ブランチを作成して、すべての変更を追跡します。 Bazaarは、そのブランチのルートディレクトリにある「.bzr」という名前のディレクトリにすべての情報を保存します。 SSHアクセスを使用して、リポジトリ/ブランチをサーバーにアップロードする必要があります。次に、ブランチにコミットされた後者の変更は、サーバーに自動的にアップロードされます。

これを行うには、次の手順に従う必要があります。

  1. 変更を追跡するファイルがあるディレクトリに、新しいブランチを作成します。

    bzr init
    
  2. 追跡するファイルを現在のブランチに追加して、Bazaarによって「バージョン管理」されるようにします。

    bzr add file1 file2 directory1 directory2 ...
    
  3. ブランチへの最初のコミットを行います。ブランチをサーバーにアップロードする前に、この最初のコミットが必要です。 「commit」コマンドの使用方法(およびコミットメッセージの入力方法)については、ドキュメントを読むか、Bazaarのヘルプを使用する必要があります。

    bzr commit
    
  4. SSHアクセスを使用してブランチをサーバーにアップロードします。 Bazaarは自動的にパスワードの入力を求めます。または、RSA公開鍵を設定して、毎回パスワードを入力する必要がないようにすることもできます。

    bzr Push sftp://[email protected]:port/branch_location_on_server
    

    SSHサーバーがポート21(デフォルト)でリッスンしている場合は、ポートを省略できます。ブランチをホームディレクトリに配置する場合は、「〜/」で始まるbranch_location_on_serverを指定する必要があります。

後者のコミットは、サーバー上のその場所に自動的にアップロードされます。

さらに、マシンがサーバーに接続されていないときに「コミット」を実行するには、「-local」オプションを「commit」コマンドに渡すか、ブランチのバインドを解除してバインドします(bzr unbind/bzr bind

そのブランチをダウンロードしたい場合は、「チェックアウト」を行うことができます。

bzr co sftp://[email protected]:port/branch_location_on_server
1
Genba

rsyncを使用して(ああ、サーバーにもrsyncが必要になるのを待ってください:))、Mercurial/git/bzrリポジトリをローカルマシンからサーバーに保存するだけです。次に、作業コピーの横にあるリポジトリ全体をダウンロードする必要があります。その後、マージを実行できます。

何か便利なものを手に入れるには、Mercurialを自宅のサーバーにインストールすることをお勧めします。おそらく、ローカルインストールはgitインストール(自宅にインストールすることもできます)よりも「複雑」ではありません。

0
akira