Skip to content

Commit

Permalink
Merge branch 'master-for-junio' of git://repo.or.cz/git/fastimport; b…
Browse files Browse the repository at this point in the history
…ranch '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
  • Loading branch information
Junio C Hamano committed Mar 6, 2007
3 parents 5ced057 + 6b4318e + b810537 commit 99e6ac5
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 9 deletions.
27 changes: 27 additions & 0 deletions Documentation/SubmittingPatches
Original file line number Diff line number Diff line change
@@ -1,3 +1,30 @@
Checklist (and a short version for the impatient):

- make commits of logical units
- check for unnecessary whitespace with "git diff --check"
before committing
- do not check in commented out code or unneeded files
- provide a meaningful commit message
- the first line of the commit message should be a short
description and should skip the full stop
- if you want your work included in git.git, add a
"Signed-off-by: Your Name <your@email.com>" line to the
commit message (or just use the option "-s" when
committing) to confirm that you agree to the Developer's
Certificate of Origin
- do not PGP sign your patch
- use "git format-patch -M" to create the patch
- do not attach your patch, but read in the mail
body, unless you cannot teach your mailer to
leave the formatting of the patch alone.
- be careful doing cut & paste into your mailer, not to
corrupt whitespaces.
- provide additional information (which is unsuitable for
the commit message) between the "---" and the diffstat
- send the patch to the list _and_ the maintainer

Long version:

I started reading over the SubmittingPatches document for Linux
kernel, primarily because I wanted to have a document similar to
it for the core GIT to make sure people understand what they are
Expand Down
2 changes: 1 addition & 1 deletion Documentation/git-diff.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ git-diff - Show changes between commits, commit and working tree, etc

SYNOPSIS
--------
'git-diff' [ --diff-options ] <commit>{0,2} [--] [<path>...]
'git-diff' [<common diff options>] <commit>{0,2} [--] [<path>...]

DESCRIPTION
-----------
Expand Down
6 changes: 4 additions & 2 deletions Documentation/git-format-patch.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ git-format-patch - Prepare patches for e-mail submission
SYNOPSIS
--------
[verse]
'git-format-patch' [-n | -k] [-o <dir> | --stdout] [--attach] [--thread]
[-s | --signoff] [--diff-options] [--start-number <n>]
'git-format-patch' [<common diff options>] [-n | -k] [-o <dir> | --stdout]
[--attach] [--thread] [-s | --signoff] [--start-number <n>]
[--in-reply-to=Message-Id] [--suffix=.<sfx>]
[--ignore-if-in-upstream]
<since>[..<until>]
Expand Down Expand Up @@ -46,6 +46,8 @@ reference.

OPTIONS
-------
include::diff-options.txt[]

-o|--output-directory <dir>::
Use <dir> to store the resulting files, instead of the
current working directory.
Expand Down
6 changes: 6 additions & 0 deletions Documentation/git.txt
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,12 @@ Identifier Terminology
operate on a <tree> object but automatically dereferences
<commit> and <tag> objects that point at a <tree>.

<commit-ish>::
Indicates a commit or tag object name. A
command that takes a <commit-ish> argument ultimately wants to
operate on a <commit> object but automatically dereferences
<tag> objects that point at a <commit>.

<type>::
Indicates that an object type is required.
Currently one of: `blob`, `tree`, `commit`, or `tag`.
Expand Down
25 changes: 19 additions & 6 deletions fast-import.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,8 @@ struct branch
const char *name;
struct tree_entry branch_tree;
uintmax_t last_commit;
unsigned int pack_id;
unsigned active : 1;
unsigned pack_id : PACK_ID_BITS;
unsigned char sha1[20];
};

Expand Down Expand Up @@ -528,6 +529,7 @@ static struct branch *new_branch(const char *name)
b->table_next_branch = branch_table[hc];
b->branch_tree.versions[0].mode = S_IFDIR;
b->branch_tree.versions[1].mode = S_IFDIR;
b->active = 0;
b->pack_id = MAX_PACK_ID;
branch_table[hc] = b;
branch_count++;
Expand Down Expand Up @@ -1547,6 +1549,7 @@ static void unload_one_branch(void)
e = active_branches;
active_branches = e->active_next_branch;
}
e->active = 0;
e->active_next_branch = NULL;
if (e->branch_tree.tree) {
release_tree_content_recursive(e->branch_tree.tree);
Expand All @@ -1559,10 +1562,13 @@ static void unload_one_branch(void)
static void load_branch(struct branch *b)
{
load_tree(&b->branch_tree);
b->active_next_branch = active_branches;
active_branches = b;
cur_active_branches++;
branch_load_count++;
if (!b->active) {
b->active = 1;
b->active_next_branch = active_branches;
active_branches = b;
cur_active_branches++;
branch_load_count++;
}
}

static void file_change_m(struct branch *b)
Expand Down Expand Up @@ -1746,7 +1752,14 @@ static struct hash_list *cmd_merge(unsigned int *count)
if (oe->type != OBJ_COMMIT)
die("Mark :%" PRIuMAX " not a commit", idnum);
hashcpy(n->sha1, oe->sha1);
} else if (get_sha1(from, n->sha1))
} else if (!get_sha1(from, n->sha1)) {
unsigned long size;
char *buf = read_object_with_reference(n->sha1,
commit_type, &size, n->sha1);
if (!buf || size < 46)
die("Not a valid commit: %s", from);
free(buf);
} else
die("Invalid ref name or SHA1 expression: %s", from);

n->next = NULL;
Expand Down

0 comments on commit 99e6ac5

Please sign in to comment.