<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/git.git/send-pack.c, branch v1.0rc1</title>
<subtitle>Git
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/git.git/atom?h=v1.0rc1</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/atom?h=v1.0rc1'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/'/>
<updated>2005-11-03T00:50:58Z</updated>
<entry>
<title>Be careful when dereferencing tags.</title>
<updated>2005-11-03T00:50:58Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2005-11-02T23:19:13Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=9534f40bc42dd826cc26c8c8c84f6a8a5fc569f6'/>
<id>urn:sha1:9534f40bc42dd826cc26c8c8c84f6a8a5fc569f6</id>
<content type='text'>
One caller of deref_tag() was not careful enough to make sure
what deref_tag() returned was not NULL (i.e. we found a tag
object that points at an object we do not have).  Fix it, and
warn about refs that point at such an incomplete tag where
needed.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>Ignore funny refname sent from remote</title>
<updated>2005-10-15T18:23:40Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2005-10-14T01:57:40Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=1a7141ff28e217312da4b289127875905c6ec479'/>
<id>urn:sha1:1a7141ff28e217312da4b289127875905c6ec479</id>
<content type='text'>
This allows the remote side (most notably, upload-pack) to show
additional information without affecting the downloader.  Peek-remote
does not ignore them -- this is to make it useful for Pasky's
automatic tag following.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>Support +&lt;src&gt;:&lt;dst&gt; format in push as well.</title>
<updated>2005-08-24T23:50:53Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2005-08-24T07:40:14Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=ff27adf3dae36695f1af1b6f0e01ec6738ce0249'/>
<id>urn:sha1:ff27adf3dae36695f1af1b6f0e01ec6738ce0249</id>
<content type='text'>
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>Fix ref_newer() in send-pack.</title>
<updated>2005-08-06T06:05:33Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2005-08-06T06:05:33Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=51b0fca012310910783de76f2eacfd10b0f2f9fc'/>
<id>urn:sha1:51b0fca012310910783de76f2eacfd10b0f2f9fc</id>
<content type='text'>
When more than two references need to be checked with
ref_newer() function, the second and later calls did not work
correctly.  This was because the later calls found commits
retained by the "struct object" layer that still had smudges
made by earlier calls.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>Fix send-pack for non-commitish tags.</title>
<updated>2005-08-05T07:47:56Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2005-08-05T07:47:56Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=37fde874c2448ae2cd98abe24df2bd2a50aa2cda'/>
<id>urn:sha1:37fde874c2448ae2cd98abe24df2bd2a50aa2cda</id>
<content type='text'>
Again I left the v2.6.11-tree tag behind.  My bad.

This commit makes sure that we do not barf when pushing a ref
that is a non-commitish tag.  You can update a remote ref under
the following conditions:

 * You can always use --force.
 * Creating a brand new ref is OK.
 * If the remote ref is exactly the same as what you are
   pushing, it is OK (nothing is pushed).
 * You can replace a commitish with another commitish which is a
   descendant of it, if you can verify the ancestry between them;
   this and the above means you have to have what you are replacing.
 * Otherwise you cannot update; you need to use --force.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>Renaming push.</title>
<updated>2005-08-04T00:16:29Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2005-08-03T23:35:29Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=f88395ac233572b19f67b3a47b9fe024f397a85b'/>
<id>urn:sha1:f88395ac233572b19f67b3a47b9fe024f397a85b</id>
<content type='text'>
This allows git-send-pack to push local refs to a destination
repository under different names.

Here is the name mapping rules for refs.

* If there is no ref mapping on the command line:

 - if '--all' is specified, it is equivalent to specifying
   &lt;local&gt; ":" &lt;local&gt; for all the existing local refs on the
   command line
 - otherwise, it is equivalent to specifying &lt;ref&gt; ":" &lt;ref&gt; for
   all the refs that exist on both sides.

* &lt;name&gt; is just a shorthand for &lt;name&gt; ":" &lt;name&gt;

* &lt;src&gt; ":" &lt;dst&gt;

  push ref that matches &lt;src&gt; to ref that matches &lt;dst&gt;.

  - It is an error if &lt;src&gt; does not match exactly one of local
    refs.

  - It is an error if &lt;dst&gt; matches more than one remote refs.

  - If &lt;dst&gt; does not match any remote refs, either

    - it has to start with "refs/"; &lt;dst&gt; is used as the
      destination literally in this case.

    - &lt;src&gt; == &lt;dst&gt; and the ref that matched the &lt;src&gt; must not
      exist in the set of remote refs; the ref matched &lt;src&gt;
      locally is used as the name of the destination.

For example,

  - "git-send-pack --all &lt;remote&gt;" works exactly as before;

  - "git-send-pack &lt;remote&gt; master:upstream" pushes local master
    to remote ref that matches "upstream".  If there is no such
    ref, it is an error.

  - "git-send-pack &lt;remote&gt; master:refs/heads/upstream" pushes
    local master to remote refs/heads/upstream, even when
    refs/heads/upstream does not exist.

  - "git-send-pack &lt;remote&gt; master" into an empty remote
    repository pushes the local ref/heads/master to the remote
    ref/heads/master.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>send-pack: handle partial pushes correctly.</title>
<updated>2005-08-03T19:41:12Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2005-08-03T19:41:12Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=40b64d47c3dd071c84445dece4003bb52a194339'/>
<id>urn:sha1:40b64d47c3dd071c84445dece4003bb52a194339</id>
<content type='text'>
When pushing into multi-user repository, or when pushing to a
repository from a local repository that has rebased branches
that has been pruned, the destination repository can have head
commits that are missing from the local repository.

This should not matter as long as the local head of the branch
being pushed is a proper superset of the destination branch, but
we ended up trying to run rev-list telling it to exclude objects
reachable from those heads missing from the local repository,
causing it to barf.  Prune those heads from the rev-list
parameter list, and make sure we do not try to push a branch
whose remote head is something we lack.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>Make send-pack --all and explicit ref mutually exclusive.</title>
<updated>2005-08-03T05:51:07Z</updated>
<author>
<name>Junio C Hamano</name>
<email>junkio@cox.net</email>
</author>
<published>2005-08-02T19:20:27Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=0bc3cdfc823e48069b778468196d8f5185a452cb'/>
<id>urn:sha1:0bc3cdfc823e48069b778468196d8f5185a452cb</id>
<content type='text'>
send-pack had a confusing misfeature that "send-pack --all
master" updated all refs, while "send-pack --all" did not do
anything.  Make --all and explicit refs mutually exclusive, and
make sure "send-pack --all" updates all refs.

Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>Fix potential send-pack SIGSEGV</title>
<updated>2005-07-27T05:23:18Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@osdl.org</email>
</author>
<published>2005-07-27T03:04:22Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=bdf25142aaac016f4d992001f336d53ab4fbc75e'/>
<id>urn:sha1:bdf25142aaac016f4d992001f336d53ab4fbc75e</id>
<content type='text'>
The check that the source is ahead of the destination incorrectly expects 
pop_most_recent_commit() to gracefully handle an empty list. 

Fix by just checking the list itself, rather than the return value of the 
pop function.

[jc: I did the test script that demonstrated the problem]

Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
Signed-off-by: Junio C Hamano &lt;junkio@cox.net&gt;
</content>
</entry>
<entry>
<title>git-send-pack: verify that sender is a proper superset of receiver</title>
<updated>2005-07-19T11:03:47Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@evo.osdl.org</email>
</author>
<published>2005-07-19T11:03:47Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/git.git/commit/?id=2a9c3fe838a21cb2097347e15bec71e848f8d625'/>
<id>urn:sha1:2a9c3fe838a21cb2097347e15bec71e848f8d625</id>
<content type='text'>
This should make sure that if you have multiple people pushing to the
same tree, they cannot overwrite each others work, but have to merge
before being able to update the common reference tree.
</content>
</entry>
</feed>
