Re: [Announce] GIT v1.5.0-rc2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes:

>>    - Cloning and fetching _from_ a shallow clone are not
>>      supported (nor tested -- so they might work by accident but
>>      they are not expected to).
>
> Maybe we should go the "restrict first, and loosen later" approach? I.e. 
> forbid git-upload-pack to run if is_repository_shallow()?
>
>>    - Pushing from nor into a shallow clone are not expected to
>>      work.
>
> Maybe forbid git-push and git-receive-pack to run if 
> is_repository_shallow()?
>
> (I _think_ git-push should be safe, but not git-receive-pack.)

I think that is sensible.  Let's do this.

-- >8 --
[PATCH] shallow repository: disable unsupported operations for now.

We currently do not support fetching/cloning from a shallow repository
nor pushing into one.  Make sure these are not attempted so that we
do not have to worry about corrupting repositories needlessly.

Signed-off-by: Junio C Hamano <junkio@xxxxxxx>
---
 receive-pack.c |    3 +++
 upload-pack.c  |    3 ++-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/receive-pack.c b/receive-pack.c
index c176d8f..6333f00 100644
--- a/receive-pack.c
+++ b/receive-pack.c
@@ -421,6 +421,9 @@ int main(int argc, char **argv)
 	if (!enter_repo(dir, 0))
 		die("'%s': unable to chdir or not a git archive", dir);
 
+	if (is_repository_shallow())
+		die("attempt to push into a shallow repository");
+
 	setup_ident();
 	/* don't die if gecos is empty */
 	ignore_missing_committer_name();
diff --git a/upload-pack.c b/upload-pack.c
index 3a466c6..3648aae 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -672,7 +672,8 @@ int main(int argc, char **argv)
 
 	if (!enter_repo(dir, strict))
 		die("'%s': unable to chdir or not a git archive", dir);
-
+	if (is_repository_shallow())
+		die("attempt to fetch/clone from a shallow repository");
 	upload_pack();
 	return 0;
 }
-- 
1.5.0.rc2


-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]