Skip to content
This repository was archived by the owner on Nov 9, 2017. It is now read-only.

Commit 99e6ac5

Browse files
author
Junio C Hamano
committed
Merge branch 'master-for-junio' of git://repo.or.cz/git/fastimport; branch 'maint'
* 'master-for-junio' of git://repo.or.cz/git/fastimport: fast-import: Fail if a non-existant commit is used for merge fast-import: Avoid infinite loop after reset * maint: Fix diff-options references in git-diff and git-format-patch Add definition of <commit-ish> to the main git man page. Begin SubmittingPatches with a check list fast-import: Fail if a non-existant commit is used for merge fast-import: Avoid infinite loop after reset
3 parents 5ced057 + 6b4318e + b810537 commit 99e6ac5

File tree

5 files changed

+57
-9
lines changed

5 files changed

+57
-9
lines changed

Documentation/SubmittingPatches

+27
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,30 @@
1+
Checklist (and a short version for the impatient):
2+
3+
- make commits of logical units
4+
- check for unnecessary whitespace with "git diff --check"
5+
before committing
6+
- do not check in commented out code or unneeded files
7+
- provide a meaningful commit message
8+
- the first line of the commit message should be a short
9+
description and should skip the full stop
10+
- if you want your work included in git.git, add a
11+
"Signed-off-by: Your Name <your@email.com>" line to the
12+
commit message (or just use the option "-s" when
13+
committing) to confirm that you agree to the Developer's
14+
Certificate of Origin
15+
- do not PGP sign your patch
16+
- use "git format-patch -M" to create the patch
17+
- do not attach your patch, but read in the mail
18+
body, unless you cannot teach your mailer to
19+
leave the formatting of the patch alone.
20+
- be careful doing cut & paste into your mailer, not to
21+
corrupt whitespaces.
22+
- provide additional information (which is unsuitable for
23+
the commit message) between the "---" and the diffstat
24+
- send the patch to the list _and_ the maintainer
25+
26+
Long version:
27+
128
I started reading over the SubmittingPatches document for Linux
229
kernel, primarily because I wanted to have a document similar to
330
it for the core GIT to make sure people understand what they are

Documentation/git-diff.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ git-diff - Show changes between commits, commit and working tree, etc
88

99
SYNOPSIS
1010
--------
11-
'git-diff' [ --diff-options ] <commit>{0,2} [--] [<path>...]
11+
'git-diff' [<common diff options>] <commit>{0,2} [--] [<path>...]
1212

1313
DESCRIPTION
1414
-----------

Documentation/git-format-patch.txt

+4-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ git-format-patch - Prepare patches for e-mail submission
99
SYNOPSIS
1010
--------
1111
[verse]
12-
'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach] [--thread]
13-
[-s | --signoff] [--diff-options] [--start-number <n>]
12+
'git-format-patch' [<common diff options>] [-n | -k] [-o <dir> | --stdout]
13+
[--attach] [--thread] [-s | --signoff] [--start-number <n>]
1414
[--in-reply-to=Message-Id] [--suffix=.<sfx>]
1515
[--ignore-if-in-upstream]
1616
<since>[..<until>]
@@ -46,6 +46,8 @@ reference.
4646

4747
OPTIONS
4848
-------
49+
include::diff-options.txt[]
50+
4951
-o|--output-directory <dir>::
5052
Use <dir> to store the resulting files, instead of the
5153
current working directory.

Documentation/git.txt

+6
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,12 @@ Identifier Terminology
241241
operate on a <tree> object but automatically dereferences
242242
<commit> and <tag> objects that point at a <tree>.
243243

244+
<commit-ish>::
245+
Indicates a commit or tag object name. A
246+
command that takes a <commit-ish> argument ultimately wants to
247+
operate on a <commit> object but automatically dereferences
248+
<tag> objects that point at a <commit>.
249+
244250
<type>::
245251
Indicates that an object type is required.
246252
Currently one of: `blob`, `tree`, `commit`, or `tag`.

fast-import.c

+19-6
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,8 @@ struct branch
220220
const char *name;
221221
struct tree_entry branch_tree;
222222
uintmax_t last_commit;
223-
unsigned int pack_id;
223+
unsigned active : 1;
224+
unsigned pack_id : PACK_ID_BITS;
224225
unsigned char sha1[20];
225226
};
226227

@@ -528,6 +529,7 @@ static struct branch *new_branch(const char *name)
528529
b->table_next_branch = branch_table[hc];
529530
b->branch_tree.versions[0].mode = S_IFDIR;
530531
b->branch_tree.versions[1].mode = S_IFDIR;
532+
b->active = 0;
531533
b->pack_id = MAX_PACK_ID;
532534
branch_table[hc] = b;
533535
branch_count++;
@@ -1547,6 +1549,7 @@ static void unload_one_branch(void)
15471549
e = active_branches;
15481550
active_branches = e->active_next_branch;
15491551
}
1552+
e->active = 0;
15501553
e->active_next_branch = NULL;
15511554
if (e->branch_tree.tree) {
15521555
release_tree_content_recursive(e->branch_tree.tree);
@@ -1559,10 +1562,13 @@ static void unload_one_branch(void)
15591562
static void load_branch(struct branch *b)
15601563
{
15611564
load_tree(&b->branch_tree);
1562-
b->active_next_branch = active_branches;
1563-
active_branches = b;
1564-
cur_active_branches++;
1565-
branch_load_count++;
1565+
if (!b->active) {
1566+
b->active = 1;
1567+
b->active_next_branch = active_branches;
1568+
active_branches = b;
1569+
cur_active_branches++;
1570+
branch_load_count++;
1571+
}
15661572
}
15671573

15681574
static void file_change_m(struct branch *b)
@@ -1746,7 +1752,14 @@ static struct hash_list *cmd_merge(unsigned int *count)
17461752
if (oe->type != OBJ_COMMIT)
17471753
die("Mark :%" PRIuMAX " not a commit", idnum);
17481754
hashcpy(n->sha1, oe->sha1);
1749-
} else if (get_sha1(from, n->sha1))
1755+
} else if (!get_sha1(from, n->sha1)) {
1756+
unsigned long size;
1757+
char *buf = read_object_with_reference(n->sha1,
1758+
commit_type, &size, n->sha1);
1759+
if (!buf || size < 46)
1760+
die("Not a valid commit: %s", from);
1761+
free(buf);
1762+
} else
17501763
die("Invalid ref name or SHA1 expression: %s", from);
17511764

17521765
n->next = NULL;

0 commit comments

Comments
 (0)