2

私は現在、PHP プロジェクトでパートナーと協力しています。

両方ともローカル サーバーで直接編集します (すべてのファイルは、WAMP スタックも実行しているサーバーに保存されます)。すべての変更を監視して htdocs フォルダーに保存し、Web 経由でリモート SVN リポジトリを更新する SVN クライアントを探しています。

Web インターフェイスを介して SVN クライアントを操作できれば、非常に助かります。

たとえばfile1.php、サーバーに保存するとします。file1.phpsvn Web サイトで更新されます。ファイルの最新のリビジョンが不適切であることが突然わかった場合は、サーバーにアクセスして (またはコンピューターから Web インターフェイスを使用して)、file1.php古いリビジョンに置き換えることができます。

最新の変更を加えたコピーを常にリモートに保存したいので、ローカル マシンに SVN サーバーをインストールしたくありません。

推奨事項はありますか?

4

7 に答える 7

7

これを行うソフトウェアを知りません。標準のコマンド ライン svn client を使用してこれをスクリプト化することはおそらく難しくありません。つまり、定期的に実行され、変更されたすべてのものをチェックインするバッチ/シェル スクリプトがあります。

とはいえ、これを行うことは強くお勧めしません。

ソース管理の通常の作業モデルでは、全員が作業用のローカル コピーを持ち、変更を中央リポジトリにチェックインします。

明示的な手動チェックインにより、(一般的に) 機能するものだけをチェックインし、貴重なチェックイン コメントを与えることができます。

次に、ソース管理リポジトリから既知の適切なバージョンでサーバーを更新できます。

生産システムに取り組んでいるようです。開発環境と上記のアプローチの使用を検討することを強くお勧めします。

于 2009-06-10T09:47:36.267 に答える
1

何も見つかりませんでした(私も同じ問題を抱えていました)。

これは 2 つの手順で行います。

ソフトウェアの一部を開発する必要がある場合、トランクを分岐して、他の人がタスクを完了するために同じことを行うときにそれを変更します。次に、ブランチをマージしてテストします。テスト後、トランクはそのマージされたパッチによって更新されています。

最後に、cronjob (または手動) は、リソースを保守モードに設定し、htdocs を削除してそこに新しいトランクをエクスポートし、必要に応じてすべてを chown/chmod するスクリプトを実行します。

このスクリプトは、管理パネルからいつでも実行でき、バグのある変更をすばやく元に戻す必要がある場合に必要なリビジョンを設定します...

于 2009-06-10T09:56:38.853 に答える
1

私がこれを正しく理解している場合、あなたの意図はSVNをバージョン管理された自動バックアップシステムとして使用することです. この場合、最も簡単な方法は、ファイル監視ツールを使用してから、変更されたファイルに対して svn コマンドライン クライアントを呼び出して、それらを SVN にコミットすることです。

于 2009-06-10T09:45:17.410 に答える
1

まだ試していませんが、SVN-Monitorが便利かもしれません。これを使用するには、上記の ToirtoiseSVN クライアントが必要です。

于 2009-06-10T09:52:32.513 に答える
0

適切なスクリプトがあれば、svnpost -commitフックが役立つかどうかわかりません。現在のリビジョン(つまり、フックを呼び出す前に作成したばかりのリビジョン)からの変更を本番システムに自動的にデプロイできます。これはあなたが求めているようなものだと思いますか?

私はあなたが提案しているものの不適切さについてのここでの他のコメントのいくつかに同意していると言わなければなりません。手動でデプロイメントプロセスを開始し、ソースをリポジトリからプルするソリューションをお勧めします。

誤解してしまったらお詫びします。

編集:質問を読み直して、リポジトリからの自動デプロイメントではなく、リポジトリへの自動コミットを探していると思います。このように、他の人が提案したスケジュールされたスクリプトソリューションは、私が考えることができる最善のアプローチです。それを提案した人に+1。

于 2009-06-10T10:10:32.430 に答える
0

2 つのコードベースに対して 2 人のコミッターが作業している、提案するシナリオでは、配布ソース コード管理ソリューション (Bazaar、Git、Mercurial) を検討することをお勧めします。その後、ローカル コミットを行い、必要に応じて 2 つの宛先に変更をプッシュおよびプルできます。

しかし、当面の問題に行くと、両端でファイルの変更を監視し、変更を検出するとすぐに svn client コマンドを適切に呼び出す何らかのユーティリティが必要になる場合があります。

于 2009-06-10T09:49:06.387 に答える
0

それが可能だとか、そう簡単だとは思いません。

クライアントの SVN の下にフォルダーを配置すると、特定のフォルダー構造が作成され、どのファイルがロックされているか、変更されているかなどを追跡できます。最初にファイルをチェックアウトせずにサーバーの SVN フォルダーを更新したり、ファイルをチェックアウトせずにファイルを編集したりする (やりたいことのように) ことは、悪い考えです。

htdocs フォルダーを zip ファイルに収集し、ファイル名を介してバージョン管理し、リモート ストレージにアップロードするスケジュールされたジョブは、これを管理するためのより簡単で高速な方法です。

于 2009-06-10T09:50:56.227 に答える