2

そのため、私は非常に大きなコードベース、3000を超えるファイル、100万行を超えるコード、500を超えるテーブルに取り組んでいます。

それは実際には問題ではありませんが。ここでの問題は、新しい機能が必要な場合、自分のマシンでローカルに作業し、ライブプロダクションを更新/パッチするときが来たときです。

  1. 私は私たちのprodサーバーにSSHで接続します
  2. ディレクトリに移動し、パッチを適用するファイルを開きます
  3. コピーして貼り付けます??? ああ、神様

とにかく、ここに私の見解があります、あなたたちがこれを行うための代替手段またはより快適なものを持っているかどうかを提案してください

  1. まず、GITに移行します。(私たちはSVNにいます)

  2. リリースを行うたびに、gitリポジトリでブランチを作成し、prodサーバーで新しいコピーを複製します(現在、svnでブランチを実行し、svn exportを実行してから、ターゲットディレクトリにコピーします。

  3. サーバーに新機能のパッチを適用する場合、ターゲットのリポジトリ/リリースに移動してgitpullを実行できますか?または、gitパッチを適用する必要がありますか?

これは私がよりシンプルな生活を想像する方法です。

これよりずっと簡単なことを思いつきますか?

4

3 に答える 3

3

あなたは正しい方向に進んでいると思います。私は似たようなことをしました。

私には2つの支店があります。

Master -> holds latest in dev
Production -> holds latest in production

prodに変更を加える必要がある場合は、本番ブランチを分岐し、変更を加えて、本番ブランチにマージし直します。これにより、同時に複数の機能に取り組むことができます。

次に、ボックスにログオンして実行しますgit pull

もちろん、ここでのより大きな問題は、PHPにはJava(WARパッケージ)のようなパッケージがないことです。:(だから、これは苦痛だと確信しています。

私はあなたをもっと助けることができればいいのですが、あなたの人生を楽にするために他に何も考えられません。

于 2011-03-01T19:52:12.763 に答える
0

prod サーバーに svn をインストールし、特定のブランチをチェックアウトし、プロダクションとしましょう ( cd /var/www && svn co svn://domain/path/to/branch )

次に、コードをプッシュする準備ができたら、prod にログインして、その特定のフォルダーを svn し、ファイルの所有者の更新を行うスクリプトを実行します。

( cd /var/www && svn up ) ( cd /var/www && chown -R www-data:www-data ) ( cd /var/www && svn info )

サーバーにログインせずにリモートで実行したい場合は、sshからリモートコマンドを実行できます(上記のスクリプトが自宅にあり、updateRepo.shと呼ばれる場合) ssh user@server updateRepo.sh sshキーペアがある場合パスワードを設定する必要さえありません注:上記はbashに出力されるため、この2>&1をすべてリダイレクトすることをお勧めします

これは役に立ちますか?

于 2011-03-01T19:56:53.430 に答える
0

Hudson Jenkinsのような継続的インテグレーション ツールの使用を検討する時期かもしれません。

そうでない場合は、少なくとも @Amir Raminfar の提案に従って、開発コードと本番コード用に異なるブランチまたはリポジトリを用意することを検討してください。

于 2011-03-01T20:35:33.840 に答える