Wordpress などの PHP アプリで SCM を使用するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/118235

  •  02-07-2019
  •  | 
  •  

質問

私はWordpressを使ってブログを運営していますが、つい最近になって 大きい SCM信者。自分のサイトを Subversion にしたいと思っています (現在使用しているのはこれです。後で git が登場するかもしれません) が、正しい方法がまだ思いつきません。基本的に、私のリポジトリは現在、「実装」ディレクトリと「リソース」ディレクトリを使用してセットアップされており、実装には最終的にライブ サイトに公開される内容が保持されます。明らかな理由により、サーバーにアップロードせずに、ローカルでサイトをプレビューできるようにしたいと考えています。ただし、これを行うには、実際に Wordpress をローカルにインストールする必要があることがわかりました (リモート サイトをローカル ボックスにコピーするだけではありません)。これは Wordpress.org で教えてもらいました。

これにより、ローカル サイトを時々アップグレードする必要があるため、インストールで SCM を使用できるという問題が発生しますが、外部システムがリポジトリをいじっているために何が起こっているかを追跡できないため、Subversion との不一致が発生します。構造。それはうまくいきません。

私の最初の傾向は、テーマ情報だけを SCM しようとすることです。これは実際に私が「所有」している唯一のものであり、他のすべては実際には私のプラットフォームの一部にすぎないためです (実際には、Apache や PHP と何ら変わりません)。しかし、そこで私の理解は崩れてしまいます。そのディレクトリ構造の一部のみを選択的に SCM するにはどうすればよいですか?また、使用している Wordpress の構成を維持するにはどうすればよいですか?

とにかく、他の人もこれに取り組んでいると思いますし、この解決策はおそらく Wordpress に似た多くのアプリ (Drupal、phpBB、phpMyAdmin など) に適用できると思います。それで、どうやってやるのですか?

役に立ちましたか?

解決

実際にはそれほど難しいことではありませんが、ここではいくつかの提案に分けて説明します。あなたが説明しているのは、多かれ少なかれ「ベンダードロップ」ディレクトリです。ここは基本的に SVN でコードを管理する場所ですが、新しいものが出てきたらその内容を置き換えます。

空のディレクトリから始める必要があります。SVN リポジトリをセットアップし、空のディレクトリに SVN チェックアウトを実行します (非表示の .svn ディレクトリが追加されることを除いて、空のままです)。次に、ここで通常通りwordpressをインストールし、そのファイルをsvnに追加します。おそらく、単に「svn add *」を実行することもできますが、バージョン管理したくないものはすべて削除してください (該当する場合、uploads/temp/cache ディレクトリ)。必要に応じて、 svn:ignore プロパティを使用して、特定のディレクトリまたはファイル タイプを無視するように指示することもできます。「svn stat」を実行して、チェックインされる内容などを表示し、すべてが正常に完了したら、コミット (svn commit) して、そこから作業を開始します。これで、SVN に Wordpress の基本インストールが完了しました。

作業して変更を加えたら、それらをコミットします。

アップグレードするときは、既存のものを wordpress に置き換えるだけです。ディレクトリを置き換えるときは、ディレクトリ自体全体ではなく、必ず内容を置き換えてください。すべてのフォルダーにある隠し .svn フォルダーを失うと、Subversion が台無しになるため、そのフォルダーを失うことは望ましくありません。svn stat や svn diff を実行して、何が変更されたのか、主に新しく追加されたものを把握します。この時点で、再度コミットできます。

実稼働サイトにデプロイするには、svn エクスポートを実行するか、Web ディレクトリに定期的にチェックアウトを実行します。チェックアウトを行う場合は、展開の準備ができた場合にのみ更新してください。

他のヒント

これが私がテストしている方法です。セットアップには少し時間がかかりますが、(理論的には) 将来も安心してインストールできるはずです。

WordPress を正しい方法でインストールする

プラグインの更新を取得するには、svn:externals も参照してください。

svn:externals を使用して WordPress プラグインをインストールする

アップグレード部分はそれよりももう少し簡単になると思います。私は、2.5 と 2.6 の両方の最新バージョンと、WP の最先端のトランク リビジョンを使用してこれを実行します。

Wordpress はすべてのものを Subversion リポジトリとして提供しているため、安定したタグの現在のリビジョンを取得するのは、ブログ ディレクトリを作成してから行うのと同じくらい簡単です。

# svn co http://svn.automattic.com/wordpress/tags/2.6.2/ (replace the current rev here for the first check out).

アップグレードが利用可能な場合は、ブログ ディレクトリに移動して実行するだけです。

#svn sw http://svn.automattic.com/wordpress/tags/2.6.3/ (or whatever wordpress rev you're updating to)

その場合、本番サイトへのリリースは単なるエクスポートです。 グレッグマックが言及ただし、これはあなたの実際の質問への答えではないと思います。これは、「Wordpressをアップグレードできる一方で、カスタムのものをSCMに保持するにはどうすればよいですか」と私は解釈しています。どのディレクトリに追加するかについてのあなたの直感はほぼ的を射ています (あなた自身の個人的なブログの内容 - テーマ、プラグイン - は wp-content に含まれるため、それを Subversion に入れるだけで済みます) が、私は Subversion に十分習熟していません。アップグレード時に Wordpress のリポジトリに依存しながら、ディレクトリを独自のリポジトリに配置する方法を説明します。私のサイト上のこれらのファイルの「SCM」は、wp-content ディレクトリのオフサーバー コピーです。

おそらくその観点からは、gregmac の答えの方がうまくいきます。

私の最初の傾向は、テーマ情報だけを SCM しようとすることです。これは実際に私が「所有」している唯一のものであり、他のすべては実際には私のプラットフォームの一部にすぎないためです (実際には、Apache や PHP と何ら変わりません)。しかし、そこで私の理解は崩れてしまいます。そのディレクトリ構造の一部のみを選択的に SCM するにはどうすればよいですか?また、使用している Wordpress の構成を維持するにはどうすればよいですか?

まさにそれが私のブログのバージョン管理方法です。それがうまく機能することがわかりました。一般に、WordPress のファイルを編集している場合、そのやり方は間違っており、アップグレードするときに悲惨な状況に陥ることになります。

これを簡素化するために、TortoiseSVN を使用します。Windows エクスプローラーで /wp-content/themes/ ディレクトリに移動し、カスタム テーマのディレクトリを右クリックして、 輸入 コンテキストメニューから。既存のファイルをすべてインポートした後、次の操作を実行しました。 チェックアウト そのディレクトリにすべてが設定されました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top