как протолкнуть на пульт только некоторые каталоги или файлы?в мерзавце - PullRequest
0 голосов
/ 06 ноября 2011

Я использую heroku для разработки приложения Django, а они используют git для отправки кода.Моя проблема в том, что им нужна такая файловая структура:

heroku_project/
     requirements.txt (this a pip requirements file)
     procfile (this file tell heroku how to run your app)
     django_project (the project itself)
     lib
     bin
     build
     lib (these 4 folders belong to my python virtual env)

Поэтому мне нужно инициализировать мой git в этой папке, так что это означает, что есть следующие дополнительные файлы:

heroku_Project/
     .gitignore
     .git

Согласно их инструкции внутри .gitignore должны быть следующие строки:

bin
build
include
lib
.Python
*.pyc

Проблема в том, что я хочу отслеживать эти виртуальные папки env, потому что иногда я устанавливаю python только для тестирования иЯ откажусь от них позже или внесу в них экспериментальные изменения, и мне хотелось бы отменить эти изменения с помощью git. У меня вопрос, как я могу отслеживать эти папки, поэтому мне нужно удалить их из .gitignore.Проблема в том, когда я делаю

git push heroku master

Как это будет толкать эти папки, а мы этого не хотим, так как я могу выборочно выдвигать файлы и каталоги?Или какой рабочий процесс вы бы использовали для решения этой проблемы?

Спасибо

Ответы [ 2 ]

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

Во-первых, если вы занимаетесь активным развитием в Heroku, возможно, вы мертвы в воде. Но если вы занимаетесь разработкой на своей локальной машине, ветки могут помочь вам.

Мой вам совет - создать отдельную ветку для развертывания кода на heroku. В этом сценарии вы можете использовать основную ветвь для активной разработки и хранить там эти папки виртуальной среды - и иметь отдельную ветку (скажем, «производственную») для развертывания кода на heroku.

Всякий раз, когда вы будете готовы выпустить новую версию своего кода, вы должны переключиться на производственную ветку, объединить изменения с master, удалить эти папки виртуальной среды и затем нажать Heroku. На практике эта последовательность команд будет выглядеть примерно так:

$ git checkout production
$ git merge master
$ rm -Rf bin build include lib .Python *.pyc
$ git commit -a -m "Cleanup for production."
$ git push heroku production

Кажется, это будет лучшее рабочее решение. Некоторые векторы, которые вы можете посмотреть самостоятельно:

  • Способы автоматизации процесса удаления файлов с помощью сценариев оболочки и перехватчиков git.
  • Чтобы убедиться, что Heroku может использовать для выполнения кода ветку, отличную от "master" (я думаю, что она должна это делать).
  • Чтобы узнать, возможно ли использовать разные файлы .gitignore в разных ветвях, и если да, удалит ли это процесс очистки от удаления этих файлов вручную.

Надеюсь, это поможет!

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

Почему бы вам не попробовать virtualenvwrapper ? Он отделяет virtualenv от вашей среды разработки. Типичный сценарий - вы работаете над одним virtualenv, скажем, «main_env».

 mkvirtualenv main_env

А когда вам понадобится еще один для тестирования, вы можете сделать

mkvirtualenv test_env

и вы можете переключаться между ними одной командой: workon [name]. Вы действительно не должны хранить эти файлы в git. Они просто не связаны с проектом. А благодаря virtualenwrapper вам не нужен git для переключения между этими виртуальными средами.

Если вы настаиваете на их сохранении, вы можете просто НЕ ставить их в git. Если вы не добавите файл / папку с git add, он не будет отправлен на сервер.

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