From: Josef Wolf <jw@raven.inka.de>
To: git@vger.kernel.org
Subject: Re-Transmission of blobs?
Date: Tue, 10 Sep 2013 15:08:38 +0200 [thread overview]
Message-ID: <20130910130837.GA14259@raven.wolf.lan> (raw)
Hello,
as we all know, files are identified by their SHA. Thus I had the impression
that when transfering files, git would know by the SHA whether a given file is
already available in the destination repository and the transfer would be of
no use. But this don't seem to be tha case. Lets see this example:
$ cat t.sh
#! /bin/sh -ex
LANG=
rm -rf 1 2
git init 1
git clone 1 2
cd 1
git commit --allow-empty -m "initial structure"
git co -b somebranch
dd if=/dev/urandom count=10 bs=1024k >t
git add t
git commit -m "blah"
cd ../2
git pull
git cherry-pick origin/somebranch
git push -v
$ ./t.sh
+ LANG=
+ rm -rf 1 2
+ git init 1
Initialized empty Git repository in /home/jw/test/1/.git/
+ git clone 1 2
Cloning into '2'...
warning: You appear to have cloned an empty repository.
done.
+ cd 1
+ git commit --allow-empty -m 'initial structure'
[master (root-commit) 97e52e2] initial structure
+ git co -b somebranch
Switched to a new branch 'somebranch'
+ dd if=/dev/urandom count=10 bs=1024k
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 1.3202 s, 7.9 MB/s
+ git add t
+ git commit -m blah
[somebranch b11cf51] blah
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 t
+ cd ../2
+ git pull
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (5/5), done.
From /home/jw/test/1
* [new branch] master -> origin/master
* [new branch] somebranch -> origin/somebranch
+ git cherry-pick origin/somebranch
[master 9e8f1c6] blah
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 t
+ git push -v
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
Pushing to /home/jw/test/1
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 10.00 MiB, done.
Total 3 (delta 0), reused 0 (delta 0)
To /home/jw/test/1
97e52e2..9e8f1c6 master -> master
updating local tracking ref 'refs/remotes/origin/master'
$
As we can see in this example, the big file is tranferred back to the first
repository, although it is already available there. This is very annoying if
you have a very slow connection.
Am I missing some important point here?
--
Josef Wolf
jw@raven.inka.de
next reply other threads:[~2013-09-10 13:32 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-10 13:08 Josef Wolf [this message]
2013-09-10 17:51 ` Re-Transmission of blobs? Junio C Hamano
2013-09-11 11:27 ` Josef Wolf
2013-09-11 17:14 ` Junio C Hamano
2013-09-12 7:42 ` Josef Wolf
2013-09-12 9:23 ` Jeff King
2013-09-12 10:35 ` Josef Wolf
2013-09-12 19:44 ` Jeff King
2013-09-13 10:09 ` Josef Wolf
2013-09-16 21:55 ` Jeff King
2013-09-20 9:27 ` Josef Wolf
2013-09-24 7:36 ` Jeff King
2013-09-24 20:36 ` Josef Wolf
2013-09-12 12:45 ` Pyeron, Jason J CTR (US)
2013-09-12 19:56 ` Jeff King
2013-09-12 20:06 ` Pyeron, Jason J CTR (US)
2013-09-13 10:23 ` Josef Wolf
2013-09-13 11:51 ` Jason Pyeron
2013-09-13 12:16 ` Duy Nguyen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130910130837.GA14259@raven.wolf.lan \
--to=jw@raven.inka.de \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).