Как вы препятствуете Git печатать 'remote:' в каждой строке вывода обработчика после получения? - PullRequest
3 голосов
/ 06 января 2011

Я недавно настроил экземпляр EC2 с рабочим процессом развертывания Git, который напоминает Heroku, но я не могу понять, как Heroku предотвращает вывод ловушки Git после получения на каждой строке «remote:».

Рассмотрим следующие два примера (один из моего проекта EC2 и один из проекта Heroku):

Мой проект EC2:

git push prod master
Counting objects: 9, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 456 bytes, done.
Total 5 (delta 3), reused 0 (delta 0)
remote: 
remote: Receiving push
remote: Deploying updated files (by resetting HEAD)
remote: HEAD is now at bf17da8 test commit
remote: Running bundler to install gem dependencies
remote: Fetching source index for http://rubygems.org/
remote: Installing rake (0.8.7) 
remote: Installing abstract (1.0.0) 
...
remote: Installing railties (3.0.0) 
remote: Installing rails (3.0.0) 
remote: Your bundle is complete! It was installed into ./.bundle/gems
remote: Launching (by restarting Passenger)... done
remote: 
To ssh://ubuntu@0.0.0.0/~/apps/app_name
   e8bd06f..bf17da8  master -> master

Heroku:

$> git push heroku master 
Counting objects: 179, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (89/89), done.  
Writing objects: 100% (105/105), 42.70 KiB, done. 
Total 105 (delta 53), reused 0 (delta 0)

-----> Heroku receiving push
-----> Rails app detected
-----> Gemfile detected, running Bundler version 1.0.3
       Unresolved dependencies detected; Installing...
       Using --without development:test
       Fetching source index for http://rubygems.org/
       Installing rake (0.8.7) 
       Installing abstract (1.0.0) 
       ...
       Installing railties (3.0.0) 
       Installing rails (3.0.0) 
       Your bundle is complete! It was installed into ./.bundle/gems
       Compiled slug size is 4.8MB
-----> Launching... done
       http://your_app_name.heroku.com deployed to Heroku

To git@heroku.com:your_app_name.git
   3bf6e8d..642f01a  master -> master

Ответы [ 2 ]

2 голосов
/ 06 января 2011

Возможно ли, что Heroku передает управляющие коды терминала, которые перезаписывают префикс «remote:» в каждой строке? Что-то вроде "\e[1G-----> line"

0 голосов
/ 19 июня 2013

Не знаю, почему никто не использует $'\e[K' (стирание до конца строки), чтобы избежать необходимости делать отступы.

echo $'\e[1G\e[K'line делает то же самое, не требуя отступов, чтобы строка remote: (которая на самом деле выводится клиентом git, а не сам хук) не отображалась.

Конечно, это не объясняет, как Heroku, в частности, справляется с этим, но, похоже, это не был настоящий вопрос - скорее, Heroku, похоже, использовался в качестве примера того, кто делает то, что было OP после того, как.

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