ты можешь облегчить мою жизнь, работая таким образом? (большая база кода и проблема с исправлениями) - PullRequest
2 голосов
/ 01 марта 2011

Итак, я работаю над действительно большой кодовой базой, более 3000 файлов, более 1 миллиона строк кода и более 500+ таблиц.

Хотя на самом деле это не проблема.Проблема здесь в том, что когда требуется новая функция, я работаю над ней локально на своей машине, и когда приходит время обновить / исправить нашу живую продукцию:

  1. Я ssh на наш сервер Prod
  2. Я перехожу в каталог и открываю файл для исправления
  3. Копирую и вставляю ???OMG

В любом случае, вот мое мнение, пожалуйста, предложите, если у вас, ребята, есть альтернативы или вам удобнее это сделать

  1. Сначала мы перейдем на GIT.(мы в SVN)

  2. Каждый раз, когда мы делаем релиз, мы разветвляемся в нашем git-репо, а затем клонируем новую копию на нашем сервере prod (прямо сейчас мы делаем ветку вsvn, и выполните экспорт svn, затем скопируйте его в целевой каталог

  3. , когда я исправляю сервер с новой функцией, я могу просто перейти к целевому репо / релизу и выполнить git pull?? или я должен пойти с git patch?

Вот как я представляю себе более простую жизнь.

Вы, ребята, придумаете что-нибудь намного проще, чем это?

Ответы [ 3 ]

3 голосов
/ 01 марта 2011

Я думаю, вы на правильном пути. Я сделал что-то подобное.

У меня есть две ветви.

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

Когда мне нужно внести изменения в prod, я разветвляю производственную ветку, вносю свои изменения и возвращаюсь в производственную ветку. Это дает мне возможность работать с несколькими функциями одновременно.

Затем я вхожу в коробку и делаю git pull.

Конечно, большая проблема здесь в том, что в PHP нет такой вещи, как пакет, как есть java (пакеты WAR). :( Так что я уверен, что это боль.

Хотел бы я помочь тебе больше, но я не могу думать ни о чем другом, чтобы облегчить тебе жизнь.

0 голосов
/ 01 марта 2011

Возможно, пришло время рассмотреть возможность использования инструмента непрерывной интеграции, такого как Hudson Jenkins .

Если нет, то, по крайней мере, рассмотрите возможность использования разных веток или репозиториев для кода разработки и производства согласно предложению @Amir Raminfar.

0 голосов
/ 01 марта 2011

установить SVN на свой сервер Prod, проверить конкретную ветку, скажем, производство, (cd / var / www && svn co 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

это полезно?

...