git одна локальная ветвь, синхронизирующаяся с несколькими удаленными ветвями: как? - PullRequest
1 голос
/ 02 ноября 2011

У меня есть одно приложение, которое я продал нескольким клиентам. У каждого клиента есть свое собственное приложение (на Heroku).

Приложения этих клиентов отличаются только тремя конфигурационными файлами: database.yml, aws.yml и corporate.rb

Локально, у меня есть один главный филиал и столько же локальных филиалов, сколько у меня клиентов. Мне нужны эти локальные филиалы для хранения 3-х конфигурационных файлов каждого клиента. Каждый раз, когда я делаю изменения в мастере, я объединяю их с ветвями каждого клиента и отправляю их один за другим в Heroku.

Это довольно тяжело ...

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

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

Я пытался включить эти файлы конфигурации в .gitignore, но он продолжает их выдвигать.

Есть идеи, чтобы решить эту проблему? Спасибо !!!

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Я решил проблему, используя переменные среды Heroku. На самом деле, мне не нужно устанавливать какие-либо переменные, чтобы использовать их. Я просто использую переменную APP_NAME и устанавливаю свою конфигурацию для каждого приложения в файле инициализатора:

# Custom values

  case ENV['APP_NAME']
  when 'pgp'
    CORPORATE_NAME = 'PGP Development'
    S3_BUCKET = 'pgpdevelopment'
  when 'anchor'
    CORPORATE_NAME = 'Anchor Group'
    S3_BUCKET = 'anchorgroup'
  when 'corionl'
    CORPORATE_NAME = 'Corio NL'
  when 'masterproj'
    CORPORATE_NAME = 'Corporate Demo'
  when 'adg'
    CORPORATE_NAME = 'ADG'
  end

#Default values

  CORPORATE_NAME ||= ENV['APP_NAME']
  DEPARTMENT_SELECTION ||= false
  GEOSCOPE_SELECTION ||= false
  GEOSCOPE_DEFAULT ||= 'world'
  DEPARTMENT_DEFAULT ||= 'all'
  S3_BUCKET ||= ENV['APP_NAME']

  S3_CREDENTIALS = {
  :access_key_id => my_key_id,
  :secret_access_key => my_access_key
  }
  if Rails.env == "production"
       S3_CREDENTIALS[:bucket] = S3_BUCKET
  else
       S3_CREDENTIALS[:bucket] = "#{S3_BUCKET}_dev"
  end

Спасибо, что поставил меня на правильный путь!

0 голосов
/ 03 ноября 2011

Я бы не стал контролировать версии специфичных для клиента артефактов в вашем хранилище.Сделайте трансформацию в другом месте, а затем подтолкните оттуда к героку.Вам нужен репо "admin".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...