Re: [PATCH] Add __git_ps1_pc to use as PROMPT_COMMAND
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 1, 2012, 17:16 UTC
- Message-ID
- <7v626udse6.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <50695ECE.5010101@nieuwland.nl>
Simon Oosthoek <soosthoek@nieuwland.nl> writes:
Show 24 quoted lines
> On 09/28/2012 07:58 PM, Junio C Hamano wrote:
>> Simon Oosthoek <soosthoek@nieuwland.nl> writes:
>>
>>> +# __git_ps1_pc accepts 0 arguments (for now)
>>> +# It is meant to be used as PROMPT_COMMAND, it sets PS1
>>> +__git_ps1_pc ()
>>> +{
>>> + local g="$(__gitdir)"
>>> + if [ -n "$g" ]; then
>>> +...
>>> + fi
>>> +}
>>
>> This looks awfully similar to the existing code in __git_ps1
>> function. Without refactoring to share the logic between them, it
>> won't be maintainable.
>>
>
> I agree that it's ugly. How about the following:
>
> I modified __git_ps1 to work both in PROMPT_COMMAND mode and in that
> mode support color hints.
>
> This way there's one function, so no overlap.I think the logical progression would be
- there are parts of __git_ps1 you want to reuse for your __git_ps1_pc; separate that part out as a helper function, and make __git_ps1 call it, without changing what __git_ps1 does (i.e. no colors, etc.)
- add __git_ps1_pc that uses the helper function you separated out.
- add whatever bells and whistles that are useful for users of either __git_ps1 or __git_ps1_pc to that helper function.