Re: [PATCH] git-p4.py: Make submit working on bare repository
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 19, 2016, 22:44 UTC
- Message-ID
- <xmqq7fi0b9rt.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <1455919074-5683-1-git-send-email-aidecoe@aidecoe.name>
Amadeusz Żołnowski <aidecoe@aidecoe.name> writes:
Show 7 quoted lines
> git-p4 can be successfully used from bare repository (which may act as a > bridge between Perforce repository and pure Git repositories). After > submitting changelist to Perforce, git-p4 performs unconditional rebase > which obviously fails. > > Perform rebase only on non-bare repositories, so submit command can be > successful on bare repository.
It is obvious that an attempt to run rebase would fail in a bare repository, and skipping it would obviously make it not fail.
I think that part is well understood.
What is unclear is what the ramification of _not_ rebasing after submitting is.
In other words, why do we have to rebase after submitting when we are in a non-bare repository? There must be a reason behind it, i.e. "If we do not rebase, then the repository would be in a state where future operations like X and Y do not work correctly because of Z".
And why does that same reason Z not apply when we submit from a bare repository?
A possible explanation might be that X and Y are operations that happen only in a non-bare repository that we do not have to worry about happening in a bare repository after we finish submitting.
But these X, Y and Z are left unexplained--that is what is unclear in the original proposed log message, and it is still unclear in the above update.
Thanks.
Show 21 quoted lines
> Signed-off-by: Amadeusz Żołnowski <aidecoe@aidecoe.name>
> ---
> git-p4.py | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/git-p4.py b/git-p4.py
> index c33dece..e00cd02 100755
> --- a/git-p4.py
> +++ b/git-p4.py
> @@ -2059,8 +2059,9 @@ class P4Submit(Command, P4UserMap):
> sync.branch = self.branch
> sync.run([])
>
> - rebase = P4Rebase()
> - rebase.rebase()
> + if not gitConfigBool("core.bare"):
> + rebase = P4Rebase()
> + rebase.rebase()
>
> else:
> if len(applied) == 0: