Skip to content

Commit

Permalink
Merge branch 'jc/subdir'
Browse files Browse the repository at this point in the history
  • Loading branch information
Junio C Hamano committed Nov 30, 2005
2 parents 5401f30 + 99e0169 commit 9cac9d3
Show file tree
Hide file tree
Showing 38 changed files with 168 additions and 20 deletions.
18 changes: 18 additions & 0 deletions apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@
// --numstat does numeric diffstat, and doesn't actually apply
// --index-info shows the old and new index info for paths if available.
//
static const char *prefix;
static int prefix_length = -1;

static int allow_binary_replacement = 0;
static int check_index = 0;
static int write_index = 0;
Expand Down Expand Up @@ -1706,6 +1709,12 @@ static int use_patch(struct patch *p)
return 0;
x = x->next;
}
if (0 < prefix_length) {
int pathlen = strlen(pathname);
if (pathlen <= prefix_length ||
memcmp(prefix, pathname, prefix_length))
return 0;
}
return 1;
}

Expand Down Expand Up @@ -1845,6 +1854,15 @@ int main(int argc, char **argv)
line_termination = 0;
continue;
}

if (check_index && prefix_length < 0) {
prefix = setup_git_directory();
prefix_length = prefix ? strlen(prefix) : 0;
git_config(git_default_config);
}
if (0 < prefix_length)
arg = prefix_filename(prefix, prefix_length, arg);

fd = open(arg, O_RDONLY);
if (fd < 0)
usage(apply_usage);
Expand Down
2 changes: 2 additions & 0 deletions cache.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,8 +147,10 @@ extern char *get_graft_file(void);
#define ALTERNATE_DB_ENVIRONMENT "GIT_ALTERNATE_OBJECT_DIRECTORIES"

extern const char **get_pathspec(const char *prefix, const char **pathspec);
extern const char *setup_git_directory_gently(int *);
extern const char *setup_git_directory(void);
extern const char *prefix_path(const char *prefix, int len, const char *path);
extern const char *prefix_filename(const char *prefix, int len, const char *path);

#define alloc_nr(x) (((x)+16)*3/2)

Expand Down
12 changes: 11 additions & 1 deletion checkout-index.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@
*/
#include "cache.h"

static const char *prefix;
static int prefix_length;

static struct checkout state = {
.base_dir = "",
.base_dir_len = 0,
Expand Down Expand Up @@ -69,6 +72,10 @@ static int checkout_all(void)
struct cache_entry *ce = active_cache[i];
if (ce_stage(ce))
continue;
if (prefix && *prefix &&
( ce_namelen(ce) <= prefix_length ||
memcmp(prefix, ce->name, prefix_length) ))
continue;
if (checkout_entry(ce, &state) < 0)
errs++;
}
Expand All @@ -91,6 +98,9 @@ int main(int argc, char **argv)
int newfd = -1;
int all = 0;

prefix = setup_git_directory();
prefix_length = prefix ? strlen(prefix) : 0;

if (read_cache() < 0) {
die("invalid cache");
}
Expand Down Expand Up @@ -155,7 +165,7 @@ int main(int argc, char **argv)

if (all)
die("git-checkout-index: don't mix '--all' and explicit filenames");
checkout_file(arg);
checkout_file(prefix_path(prefix, prefix_length, arg));
}

if (all)
Expand Down
2 changes: 2 additions & 0 deletions clone-pack.c
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,8 @@ int main(int argc, char **argv)
int fd[2];
pid_t pid;

setup_git_directory();

nr_heads = 0;
heads = NULL;
for (i = 1; i < argc; i++) {
Expand Down
2 changes: 2 additions & 0 deletions commit-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@ int main(int argc, char **argv)
if (argc < 2 || get_sha1_hex(argv[1], tree_sha1) < 0)
usage(commit_tree_usage);

setup_git_directory();

check_valid(tree_sha1, "tree");
for (i = 2; i < argc; i += 2) {
char *a, *b;
Expand Down
2 changes: 2 additions & 0 deletions convert-objects.c
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,8 @@ int main(int argc, char **argv)
unsigned char sha1[20];
struct entry *entry;

setup_git_directory();

if (argc != 2 || get_sha1(argv[1], sha1))
usage("git-convert-objects <sha1>");

Expand Down
2 changes: 2 additions & 0 deletions fetch-pack.c
Original file line number Diff line number Diff line change
Expand Up @@ -424,6 +424,8 @@ int main(int argc, char **argv)
int fd[2];
pid_t pid;

setup_git_directory();

nr_heads = 0;
heads = NULL;
for (i = 1; i < argc; i++) {
Expand Down
2 changes: 2 additions & 0 deletions fsck-objects.c
Original file line number Diff line number Diff line change
Expand Up @@ -431,6 +431,8 @@ int main(int argc, char **argv)
{
int i, heads;

setup_git_directory();

for (i = 1; i < argc; i++) {
const char *arg = argv[i];

Expand Down
5 changes: 5 additions & 0 deletions git-add.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
#!/bin/sh

die () {
echo >&2 "$*"
exit 1
}

usage() {
die "usage: git add [-n] [-v] <file>..."
}
Expand Down
11 changes: 7 additions & 4 deletions git-branch.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
#!/bin/sh

. git-sh-setup
GIT_DIR=`git-rev-parse --git-dir` || exit $?

die () {
echo >&2 "$*"
exit 1
}

usage () {
echo >&2 "usage: $(basename $0)"' [-d <branch>] | [[-f] <branch> [start-point]]
Expand All @@ -12,8 +17,7 @@ If two arguments, create a new branch <branchname> based off of <start-point>.
exit 1
}

headref=$(GIT_DIR="$GIT_DIR" git-symbolic-ref HEAD |
sed -e 's|^refs/heads/||')
headref=$(git-symbolic-ref HEAD | sed -e 's|^refs/heads/||')

delete_branch () {
option="$1"
Expand Down Expand Up @@ -114,4 +118,3 @@ then
fi
fi
git update-ref "refs/heads/$branchname" $rev

2 changes: 1 addition & 1 deletion git-count-objects.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Copyright (c) 2005 Junio C Hamano
#

. git-sh-setup
GIT_DIR=`git-rev-parse --git-dir` || exit $?

dc </dev/null 2>/dev/null || {
# This is not a real DC at all -- it just knows how
Expand Down
5 changes: 5 additions & 0 deletions git-diff.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ rev=$(git-rev-parse --revs-only --no-flags --sq "$@") || exit
flags=$(git-rev-parse --no-revs --flags --sq "$@")
files=$(git-rev-parse --no-revs --no-flags --sq "$@")

die () {
echo >&2 "$*"
exit 1
}

# I often say 'git diff --cached -p' and get scolded by git-diff-files, but
# obviously I mean 'git diff --cached -p HEAD' in that case.
case "$rev" in
Expand Down
3 changes: 1 addition & 2 deletions git-lost-found.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#!/bin/sh

. git-sh-setup

GIT_DIR=`git-rev-parse --git-dir` || exit $?
laf="$GIT_DIR/lost-found"
rm -fr "$laf" && mkdir -p "$laf/commit" "$laf/other" || exit

Expand Down
5 changes: 5 additions & 0 deletions git-ls-remote.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ usage () {
exit 1;
}

die () {
echo >&2 "$*"
exit 1
}

while case "$#" in 0) break;; esac
do
case "$1" in
Expand Down
5 changes: 5 additions & 0 deletions git-merge-octopus.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@
LF='
'

die () {
echo >&2 "$*"
exit 1
}

# The first parameters up to -- are merge bases; the rest are heads.
bases= head= remotes= sep_seen=
for arg
Expand Down
7 changes: 6 additions & 1 deletion git-tag.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
#!/bin/sh
# Copyright (c) 2005 Linus Torvalds

. git-sh-setup
GIT_DIR=`git-rev-parse --git-dir` || exit $?

usage () {
echo >&2 "Usage: git-tag [-a | -s | -u <key-id>] [-f | -d] [-m <msg>] <tagname> [<head>]"
exit 1
}

die () {
echo >&2 "$*"
exit 1
}

annotate=
signed=
force=
Expand Down
17 changes: 13 additions & 4 deletions git-verify-tag.sh
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
#!/bin/sh
. git-sh-setup

GIT_DIR=`git-rev-parse --git-dir` || exit $?

die () {
echo >&2 "$*"
exit 1
}

type="$(git-cat-file -t "$1" 2>/dev/null)" ||
die "$1: no such object."

test "$type" = tag ||
die "$1: cannot verify a non-tag object of type $type."

git-cat-file tag "$1" > .tmp-vtag || exit 1
cat .tmp-vtag | sed '/-----BEGIN PGP/Q' | gpg --verify .tmp-vtag - || exit 1
rm -f .tmp-vtag
git-cat-file tag "$1" >"$GIT_DIR/.tmp-vtag" || exit 1
cat "$GIT_DIR/.tmp-vtag" |
sed '/-----BEGIN PGP/Q' |
gpg --verify "$GIT_DIR/.tmp-vtag" - || exit 1
rm -f "$GIT_DIR/.tmp-vtag"

18 changes: 15 additions & 3 deletions hash-object.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,29 @@ int main(int argc, char **argv)
int i;
const char *type = "blob";
int write_object = 0;
const char *prefix = NULL;
int prefix_length = -1;

for (i = 1 ; i < argc; i++) {
if (!strcmp(argv[i], "-t")) {
if (argc <= ++i)
die(hash_object_usage);
type = argv[i];
}
else if (!strcmp(argv[i], "-w"))
else if (!strcmp(argv[i], "-w")) {
if (prefix_length < 0) {
prefix = setup_git_directory();
prefix_length = prefix ? strlen(prefix) : 0;
}
write_object = 1;
else
hash_object(argv[i], type, write_object);
}
else {
const char *arg = argv[i];
if (0 <= prefix_length)
arg = prefix_filename(prefix, prefix_length,
arg);
hash_object(arg, type, write_object);
}
}
return 0;
}
2 changes: 2 additions & 0 deletions http-fetch.c
Original file line number Diff line number Diff line change
Expand Up @@ -922,6 +922,8 @@ int main(int argc, char **argv)
int arg = 1;
int rc = 0;

setup_git_directory();

while (arg < argc && argv[arg][0] == '-') {
if (argv[arg][1] == 't') {
get_tree = 1;
Expand Down
1 change: 1 addition & 0 deletions http-push.c
Original file line number Diff line number Diff line change
Expand Up @@ -1237,6 +1237,7 @@ int main(int argc, char **argv)
int rc = 0;
int i;

setup_git_directory();
setup_ident();

remote = xmalloc(sizeof(*remote));
Expand Down
2 changes: 2 additions & 0 deletions local-fetch.c
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,8 @@ int main(int argc, char **argv)
char *commit_id;
int arg = 1;

setup_git_directory();

while (arg < argc && argv[arg][0] == '-') {
if (argv[arg][1] == 't')
get_tree = 1;
Expand Down
2 changes: 2 additions & 0 deletions merge-base.c
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,8 @@ int main(int argc, char **argv)
struct commit *rev1, *rev2;
unsigned char rev1key[20], rev2key[20];

setup_git_directory();

while (1 < argc && argv[1][0] == '-') {
char *arg = argv[1];
if (!strcmp(arg, "-a") || !strcmp(arg, "--all"))
Expand Down
1 change: 1 addition & 0 deletions merge-index.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ int main(int argc, char **argv)
if (argc < 3)
usage("git-merge-index [-o] [-q] <merge-program> (-a | <filename>*)");

setup_git_directory();
read_cache();

i = 1;
Expand Down
2 changes: 2 additions & 0 deletions mktag.c
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,8 @@ int main(int argc, char **argv)
if (argc != 1)
usage("cat <signaturefile> | git-mktag");

setup_git_directory();

// Read the signature
size = 0;
for (;;) {
Expand Down
2 changes: 2 additions & 0 deletions pack-objects.c
Original file line number Diff line number Diff line change
Expand Up @@ -473,6 +473,8 @@ int main(int argc, char **argv)
struct object_entry **list;
int i;

setup_git_directory();

for (i = 1; i < argc; i++) {
const char *arg = argv[i];

Expand Down
2 changes: 2 additions & 0 deletions pack-redundant.c
Original file line number Diff line number Diff line change
Expand Up @@ -600,6 +600,8 @@ int main(int argc, char **argv)
unsigned char *sha1;
char buf[42]; /* 40 byte sha1 + \n + \0 */

setup_git_directory();

for (i = 1; i < argc; i++) {
const char *arg = argv[i];
if(!strcmp(arg, "--")) {
Expand Down
3 changes: 3 additions & 0 deletions peek-remote.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ int main(int argc, char **argv)
char *dest = NULL;
int fd[2];
pid_t pid;
int nongit = 0;

setup_git_directory_gently(&nongit);

for (i = 1; i < argc; i++) {
char *arg = argv[i];
Expand Down
2 changes: 2 additions & 0 deletions prune-packed.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ int main(int argc, char **argv)
{
int i;

setup_git_directory();

for (i = 1; i < argc; i++) {
const char *arg = argv[i];

Expand Down
Loading

0 comments on commit 9cac9d3

Please sign in to comment.