2013-07-16 4 views
3

Я легко забываю регулярно совершать локальные коммиты git, и поэтому я разработал плохую привычку иметь несколько очень больших коммитов. Я бы очень хотел сделать много мелких коммитов. Во многом, поэтому сообщения более явны.Automatic Xcode Git Commit Prompts

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

Вот что мне хотелось бы, будь то плагин Xcode, триггер поведения Applescript или xCode, который систематически инициирует команду commit (cmd-option c) в Xcode (или, я полагаю, я бы изучил альтернативы, d быть красивым, чтобы остаться в xCode). Он может делать это либо на основе количества измененных файлов, либо на сколько времени прошло, или, возможно, на «сборку и запуск» или любое другое разумное поведение. Во всяком случае, я бы хотел, чтобы он был несколько настраиваемым и где он мог быть легко включен и отключен.

Так есть что-то такое уже там? Если нет, есть ли у вас какие-либо указания относительно того, как я могу начать работу с потенциальным решением.

ответ

2

Интересный вопрос

Вы можете экстраполировать из следующего кода, найденной на этом website. Можно создать уникальное, но стандартизованное текстовое сообщение в сочетании с комбинацией имени/даты папки как автоматическое сообщение фиксации или взять сценарий и сделать его выполнимым, чтобы принять параметр как ввод с сообщением, являющимся параметром. Полагаю, хотя это может быть столько же, сколько ввести git commit в терминал. Вместо этого вы можете использовать этот скрипт в сочетании с действиями папки для контроля активности в папке со сценарием, действующим в качестве службы.

(* Copyright (C) 2012 Collin Доннелл

Разрешение Настоящим предоставляется бесплатно, любому лицу, приобретающему копию данного программного обеспечения и связанных с ними файлов документации («Программное обеспечение»), для решения в Программное обеспечение без ограничений, включая, помимо прочего, права на использование, копирование, модификацию, объединение, публикацию, распространение, сублицензию и/или продажу копий Программного обеспечения и предоставление лицам, которым предоставляется Программное обеспечение, для этого, с учетом следующие условия:

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

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ​​ГАРАНТИЯМИ КОММЕРЧЕСКОЙ ЦЕННОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ АВТОРСКИЕ ДЕРЖАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГИЕ ОТВЕТСТВЕННОСТИ, КАКИЕ-ЛИБО ДЕЙСТВИЯ КОНТРАКТА, ДЕЙСТВИЯ ИЛИ ДРУГИХ, ВОЗНИКАЮЩИХ ИЗ НЕСОВЕРШЕННОЛЕТНИХ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЛАМИ В ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ. *)

tell application "Finder" 
    set current_path to (POSIX path of (target of front window as alias)) 
    set commit_message to text returned of (display dialog "Commit message: " buttons {"Cancel", "Commit"} with title "Commit All" cancel button "Cancel" default button "Commit" default answer "") 
    try 
     do shell script ("cd \"" & current_path & "\"; git commit -am" & quoted form of commit_message) 
    on error the_error 
     display dialog the_error buttons {"OK"} with icon caution with title "Error" 
    end try 
end tell