Merge commit 'mingw/master' into devel

This commit is contained in:
Steffen Prohaska
2008-04-08 21:35:03 +02:00
17 changed files with 224 additions and 89 deletions

View File

@@ -6,7 +6,7 @@ Updates since v1.5.4
(subsystems)
* Comes with git-gui 0.10.0
* Comes with git-gui 0.10.1
(portability)
@@ -205,9 +205,3 @@ this release, unless otherwise noted.
* "git imap-send" without setting imap.host did not error out but
segfaulted.
---
exec >/var/tmp/1
O=v1.5.5-rc3
echo O=`git describe refs/heads/master`
git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint

View File

@@ -22,8 +22,9 @@ archive with specified base-name, or to the standard output.
A packed archive is an efficient way to transfer set of objects
between two repositories, and also is an archival format which
is efficient to access. The packed archive format (.pack) is
designed to be unpackable without having anything else, but for
random access, accompanied with the pack index file (.idx).
designed to be self contained so that it can be unpacked without
any further information, but for fast, random access to the objects
in the pack, a pack index file (.idx) will be generated.
Placing both in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or
any of the directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES)

View File

@@ -43,6 +43,11 @@ unreleased) version of git, that is available from 'master'
branch of the `git.git` repository.
Documentation for older releases are available here:
* link:v1.5.5/git.html[documentation for release 1.5.5]
* release notes for
link:RelNotes-1.5.5.txt[1.5.5].
* link:v1.5.4.5/git.html[documentation for release 1.5.4.5]
* release notes for

View File

@@ -103,10 +103,24 @@ Pack file entry: <+
packed object data:
If it is not DELTA, then deflated bytes (the size above
is the size before compression).
If it is DELTA, then
If it is REF_DELTA, then
20-byte base object name SHA1 (the size above is the
size of the delta data that follows).
delta data, deflated.
If it is OFS_DELTA, then
n-byte offset (see below) interpreted as a negative
offset from the type-byte of the header of the
ofs-delta entry (the size above is the size of
the delta data that follows).
delta data, deflated.
offset encoding:
n bytes with MSB set in all but the last one.
The offset is then the number constructed by
concatenating the lower 7 bit of each byte, and
for n >= 2 adding 2^7 + 2^14 + ... + 2^(7*(n-1))
to the result.
= Version 2 pack-*.idx files support packs larger than 4 GiB, and

View File

@@ -1,7 +1,7 @@
#!/bin/sh
GVF=GIT-VERSION-FILE
DEF_VER=v1.5.5-rc3.GIT
DEF_VER=v1.5.5.GIT
LF='
'

View File

@@ -1937,21 +1937,24 @@ static int apply_one_fragment(struct image *img, struct fragment *frag,
trailing = frag->trailing;
/*
* If we don't have any leading/trailing data in the patch,
* we want it to match at the beginning/end of the file.
* A hunk to change lines at the beginning would begin with
* @@ -1,L +N,M @@
*
* But that would break if the patch is generated with
* --unified=0; sane people wouldn't do that to cause us
* trouble, but we try to please not so sane ones as well.
* And a hunk to add to an empty file would begin with
* @@ -0,0 +N,M @@
*
* In other words, a hunk that is (frag->oldpos <= 1) with or
* without leading context must match at the beginning.
*/
if (unidiff_zero) {
match_beginning = (!leading && !frag->oldpos);
match_end = 0;
}
else {
match_beginning = !leading && (frag->oldpos == 1);
match_end = !trailing;
}
match_beginning = frag->oldpos <= 1;
/*
* A hunk without trailing lines must match at the end.
* However, we simply cannot tell if a hunk must match end
* from the lack of trailing lines if the patch was generated
* with unidiff without any context.
*/
match_end = !unidiff_zero && !trailing;
pos = frag->newpos ? (frag->newpos - 1) : 0;
preimage.buf = oldlines;

View File

@@ -637,6 +637,8 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
if (!strcmp(argv[i], "tag")) {
char *ref;
i++;
if (i >= argc)
die("You need to specify a tag name.");
ref = xmalloc(strlen(argv[i]) * 2 + 22);
strcpy(ref, "refs/tags/");
strcat(ref, argv[i]);

View File

@@ -639,7 +639,9 @@ _git_diff ()
--find-copies-harder --pickaxe-all --pickaxe-regex
--text --ignore-space-at-eol --ignore-space-change
--ignore-all-space --exit-code --quiet --ext-diff
--no-ext-diff"
--no-ext-diff
--no-prefix --src-prefix= --dst-prefix=
"
return
;;
esac
@@ -696,6 +698,7 @@ _git_format_patch ()
--full-index --binary
--not --all
--cover-letter
--no-prefix --src-prefix= --dst-prefix=
"
return
;;
@@ -865,7 +868,7 @@ _git_rebase ()
return
;;
--*)
__gitcomp "--onto --merge --strategy"
__gitcomp "--onto --merge --strategy --interactive"
return
esac
__gitcomp "$(__git_refs)"

View File

@@ -2064,11 +2064,11 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} {
.mbar.commit add command -label [mc "Show Less Context"] \
-command show_less_context \
-accelerator $M1T-\[
-accelerator $M1T-\-
.mbar.commit add command -label [mc "Show More Context"] \
-command show_more_context \
-accelerator $M1T-\]
-accelerator $M1T-=
.mbar.commit add separator
@@ -2715,8 +2715,11 @@ bind $ui_comm <$M1B-Key-v> {tk_textPaste %W; %W see insert; break}
bind $ui_comm <$M1B-Key-V> {tk_textPaste %W; %W see insert; break}
bind $ui_comm <$M1B-Key-a> {%W tag add sel 0.0 end;break}
bind $ui_comm <$M1B-Key-A> {%W tag add sel 0.0 end;break}
bind $ui_comm <$M1B-Key-\[> {show_less_context;break}
bind $ui_comm <$M1B-Key-\]> {show_more_context;break}
bind $ui_comm <$M1B-Key-minus> {show_less_context;break}
bind $ui_comm <$M1B-Key-KP_Subtract> {show_less_context;break}
bind $ui_comm <$M1B-Key-equal> {show_more_context;break}
bind $ui_comm <$M1B-Key-plus> {show_more_context;break}
bind $ui_comm <$M1B-Key-KP_Add> {show_more_context;break}
bind $ui_diff <$M1B-Key-x> {tk_textCopy %W;break}
bind $ui_diff <$M1B-Key-X> {tk_textCopy %W;break}
@@ -2760,8 +2763,11 @@ bind . <$M1B-Key-t> do_add_selection
bind . <$M1B-Key-T> do_add_selection
bind . <$M1B-Key-i> do_add_all
bind . <$M1B-Key-I> do_add_all
bind . <$M1B-Key-\[> {show_less_context;break}
bind . <$M1B-Key-\]> {show_more_context;break}
bind . <$M1B-Key-minus> {show_less_context;break}
bind . <$M1B-Key-KP_Subtract> {show_less_context;break}
bind . <$M1B-Key-equal> {show_more_context;break}
bind . <$M1B-Key-plus> {show_more_context;break}
bind . <$M1B-Key-KP_Add> {show_more_context;break}
bind . <$M1B-Key-Return> do_commit
foreach i [list $ui_index $ui_workdir] {
bind $i <Button-1> "toggle_or_diff $i %x %y; break"

View File

@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: fr\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2008-03-14 07:18+0100\n"
"PO-Revision-Date: 2008-01-14 21:08+0100\n"
"PO-Revision-Date: 2008-04-04 22:05+0200\n"
"Last-Translator: Christian Couder <chriscool@tuxfamily.org>\n"
"Language-Team: French\n"
"MIME-Version: 1.0\n"
@@ -344,8 +344,7 @@ msgstr "Documentation en ligne"
#: git-gui.sh:2238
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
msgstr ""
"fatale : pas d'infos sur le chemin %s : Fichier ou répertoire inexistant"
msgstr "erreur fatale : pas d'infos sur le chemin %s : Fichier ou répertoire inexistant"
#: git-gui.sh:2271
msgid "Current Branch:"
@@ -630,8 +629,7 @@ msgstr "Merci de choisir une branche de suivi"
#: lib/branch_create.tcl:140
#, tcl-format
msgid "Tracking branch %s is not a branch in the remote repository."
msgstr ""
"La branche de suivi %s n'est pas une branche dans le référentiel distant."
msgstr "La branche de suivi %s n'est pas une branche dans le référentiel distant."
#: lib/branch_create.tcl:153 lib/branch_rename.tcl:86
msgid "Please supply a branch name."
@@ -751,7 +749,7 @@ msgstr "Récupération de %s à partir de %s"
#: lib/checkout_op.tcl:127
#, tcl-format
msgid "fatal: Cannot resolve %s"
msgstr "Erreur fatale : Impossible de résoudre %s"
msgstr "erreur fatale : Impossible de résoudre %s"
#: lib/checkout_op.tcl:140 lib/console.tcl:81 lib/database.tcl:31
msgid "Close"
@@ -798,12 +796,9 @@ msgid ""
"\n"
"The rescan will be automatically started now.\n"
msgstr ""
"L'état lors de la dernière synchronisation ne correspond plus à l'état du "
"référentiel.\n"
"L'état lors de la dernière synchronisation ne correspond plus à l'état du référentiel.\n"
"\n"
"Un autre programme Git a modifié ce référentiel depuis la dernière "
"synchronisation. Une resynchronisation doit être effectuée avant de pouvoir "
"modifier la branche courante.\n"
"Un autre programme Git a modifié ce référentiel depuis la dernière synchronisation. Une resynchronisation doit être effectuée avant de pouvoir modifier la branche courante.\n"
"\n"
"Cela va être fait tout de suite automatiquement.\n"
@@ -814,13 +809,12 @@ msgstr "Mise à jour du répertoire courant avec '%s'..."
#: lib/checkout_op.tcl:323
msgid "files checked out"
msgstr ""
msgstr "fichiers empruntés"
#: lib/checkout_op.tcl:353
#, tcl-format
msgid "Aborted checkout of '%s' (file level merging is required)."
msgstr ""
"Emprunt de '%s' abandonné. (Il est nécessaire de fusionner des fichiers.)"
msgstr "Emprunt de '%s' abandonné. (Il est nécessaire de fusionner des fichiers.)"
#: lib/checkout_op.tcl:354
msgid "File level merge required."
@@ -1089,8 +1083,7 @@ msgstr ""
#: lib/choose_repository.tcl:880
msgid "Cannot determine HEAD. See console output for details."
msgstr ""
"Impossible de déterminer HEAD. Voir la sortie console pour plus de détails."
msgstr "Impossible de déterminer HEAD. Voir la sortie console pour plus de détails."
#: lib/choose_repository.tcl:889
#, tcl-format
@@ -1292,32 +1285,31 @@ msgstr "attention : Tcl ne supporte pas l'encodage '%s'."
#: lib/commit.tcl:221
msgid "Calling pre-commit hook..."
msgstr ""
msgstr "Appel du programme externe d'avant commit..."
#: lib/commit.tcl:236
msgid "Commit declined by pre-commit hook."
msgstr ""
msgstr "Commit refusé par le programme externe d'avant commit."
#: lib/commit.tcl:259
msgid "Calling commit-msg hook..."
msgstr ""
msgstr "Appel du programme externe de message de commit..."
#: lib/commit.tcl:274
msgid "Commit declined by commit-msg hook."
msgstr ""
msgstr "Commit refusé par le programme externe de message de commit."
#: lib/commit.tcl:287
msgid "Committing changes..."
msgstr ""
msgstr "Commit des modifications..."
#: lib/commit.tcl:303
msgid "write-tree failed:"
msgstr "write-tree a échoué :"
#: lib/commit.tcl:304 lib/commit.tcl:348 lib/commit.tcl:368
#, fuzzy
msgid "Commit failed."
msgstr "Le clonage a échoué."
msgstr "Le commit a échoué."
#: lib/commit.tcl:321
#, tcl-format
@@ -1479,8 +1471,7 @@ msgstr "Erreur lors du chargement des différences :"
#: lib/diff.tcl:303
msgid "Failed to unstage selected hunk."
msgstr ""
"La suppression dans le pré-commit de la section sélectionnée a échouée."
msgstr "La suppression dans le pré-commit de la section sélectionnée a échouée."
#: lib/diff.tcl:310
msgid "Failed to stage selected hunk."
@@ -1510,8 +1501,7 @@ msgstr "Erreur de pré-commit"
msgid ""
"Updating the Git index failed. A rescan will be automatically started to "
"resynchronize git-gui."
msgstr ""
"Le pré-commit a échoué. Une resynchronisation va être lancée automatiquement."
msgstr "Le pré-commit a échoué. Une resynchronisation va être lancée automatiquement."
#: lib/index.tcl:27
msgid "Continue"
@@ -1527,9 +1517,8 @@ msgid "Unstaging %s from commit"
msgstr "Supprimer %s du commit"
#: lib/index.tcl:313
#, fuzzy
msgid "Ready to commit."
msgstr "Pré-commité"
msgstr "Prêt à être commité."
#: lib/index.tcl:326
#, tcl-format
@@ -1627,9 +1616,9 @@ msgid "%s of %s"
msgstr "%s de %s"
#: lib/merge.tcl:119
#, fuzzy, tcl-format
#, tcl-format
msgid "Merging %s and %s..."
msgstr "Fusion de %s et %s"
msgstr "Fusion de %s et %s..."
#: lib/merge.tcl:130
msgid "Merge completed successfully."
@@ -1693,9 +1682,8 @@ msgid "Aborting"
msgstr "Abandon"
#: lib/merge.tcl:238
#, fuzzy
msgid "files reset"
msgstr "fichiers"
msgstr "fichiers réinitialisés"
#: lib/merge.tcl:265
msgid "Abort failed."
@@ -1759,9 +1747,8 @@ msgid "Number of Diff Context Lines"
msgstr "Nombre de lignes de contexte dans les diffs"
#: lib/option.tcl:127
#, fuzzy
msgid "Commit Message Text Width"
msgstr "Message de commit :"
msgstr "Largeur du texte de message de commit"
#: lib/option.tcl:128
msgid "New Branch Name Template"
@@ -1769,7 +1756,7 @@ msgstr "Nouveau modèle de nom de branche"
#: lib/option.tcl:192
msgid "Spelling Dictionary:"
msgstr ""
msgstr "Dictionnaire d'orthographe :"
#: lib/option.tcl:216
msgid "Change Font"
@@ -1898,40 +1885,40 @@ msgstr "Impossible d'écrire l'icône :"
#: lib/spellcheck.tcl:57
msgid "Unsupported spell checker"
msgstr ""
msgstr "Vérificateur d'orthographe non supporté"
#: lib/spellcheck.tcl:65
msgid "Spell checking is unavailable"
msgstr ""
msgstr "La vérification d'orthographe n'est pas disponible"
#: lib/spellcheck.tcl:68
msgid "Invalid spell checking configuration"
msgstr ""
msgstr "Configuration de vérification d'orthographe invalide"
#: lib/spellcheck.tcl:70
#, tcl-format
msgid "Reverting dictionary to %s."
msgstr ""
msgstr "Réinitialisation du dictionnaire à %s."
#: lib/spellcheck.tcl:73
msgid "Spell checker silently failed on startup"
msgstr ""
msgstr "La vérification d'orthographe a échouée silentieusement au démarrage"
#: lib/spellcheck.tcl:80
msgid "Unrecognized spell checker"
msgstr ""
msgstr "Vérificateur d'orthographe non reconnu"
#: lib/spellcheck.tcl:180
msgid "No Suggestions"
msgstr ""
msgstr "Aucune suggestion"
#: lib/spellcheck.tcl:381
msgid "Unexpected EOF from spell checker"
msgstr ""
msgstr "Fin de fichier innatendue envoyée par le vérificateur d'orthographe"
#: lib/spellcheck.tcl:385
msgid "Spell Checker Failed"
msgstr ""
msgstr "Le vérificateur d'orthographe a échoué"
#: lib/status_bar.tcl:83
#, tcl-format
@@ -2002,3 +1989,4 @@ msgstr "Utiliser des petits paquets (pour les connexions lentes)"
#: lib/transport.tcl:168
msgid "Include tags"
msgstr "Inclure les marques"

View File

@@ -2239,12 +2239,13 @@ sub find_parent_branch {
# just grow a tail if we're not unique enough :x
$ref_id .= '-' while find_ref($ref_id);
print STDERR "Initializing parent: $ref_id\n";
my ($u, $p) = ($new_url, '');
my ($u, $p, $repo_id) = ($new_url, '', $ref_id);
if ($u =~ s#^\Q$url\E(/|$)##) {
$p = $u;
$u = $url;
$repo_id = $self->{repo_id};
}
$gs = Git::SVN->init($u, $p, $self->{repo_id}, $ref_id, 1);
$gs = Git::SVN->init($u, $p, $repo_id, $ref_id, 1);
}
my ($r0, $parent) = $gs->find_rev_before($r, 1);
if (!defined $r0 || !defined $parent) {

View File

@@ -8046,11 +8046,11 @@ proc doprefs {} {
grid $top.cdisp - -sticky w -pady 10
label $top.bg -padx 40 -relief sunk -background $bgcolor
button $top.bgbut -text [mc "Background"] -font optionfont \
-command [list choosecolor bgcolor 0 $top.bg background setbg]
-command [list choosecolor bgcolor {} $top.bg background setbg]
grid x $top.bgbut $top.bg -sticky w
label $top.fg -padx 40 -relief sunk -background $fgcolor
button $top.fgbut -text [mc "Foreground"] -font optionfont \
-command [list choosecolor fgcolor 0 $top.fg foreground setfg]
-command [list choosecolor fgcolor {} $top.fg foreground setfg]
grid x $top.fgbut $top.fg -sticky w
label $top.diffold -padx 40 -relief sunk -background [lindex $diffcolors 0]
button $top.diffoldbut -text [mc "Diff: old lines"] -font optionfont \
@@ -8070,7 +8070,7 @@ proc doprefs {} {
grid x $top.hunksepbut $top.hunksep -sticky w
label $top.selbgsep -padx 40 -relief sunk -background $selectbgcolor
button $top.selbgbut -text [mc "Select bg"] -font optionfont \
-command [list choosecolor selectbgcolor 0 $top.selbgsep background setselbg]
-command [list choosecolor selectbgcolor {} $top.selbgsep background setselbg]
grid x $top.selbgbut $top.selbgsep -sticky w
label $top.cfont -text [mc "Fonts: press to choose"]

View File

@@ -2164,7 +2164,7 @@ sub parse_difftree_raw_line {
$res{'to_mode'} = $2;
$res{'from_id'} = $3;
$res{'to_id'} = $4;
$res{'status'} = $res{'status_str'} = $5;
$res{'status'} = $5;
$res{'similarity'} = $6;
if ($res{'status'} eq 'R' || $res{'status'} eq 'C') { # renamed or copied
($res{'from_file'}, $res{'to_file'}) = map { unquote($_) } split("\t", $7);
@@ -2180,7 +2180,6 @@ sub parse_difftree_raw_line {
$res{'to_mode'} = pop @{$res{'from_mode'}};
$res{'from_id'} = [ split(' ', $3) ];
$res{'to_id'} = pop @{$res{'from_id'}};
$res{'status_str'} = $4;
$res{'status'} = [ split('', $4) ];
$res{'to_file'} = unquote($5);
}
@@ -3002,7 +3001,7 @@ sub fill_from_file_info {
sub is_deleted {
my $diffinfo = shift;
return $diffinfo->{'status_str'} =~ /D/;
return $diffinfo->{'to_id'} eq ('0' x 40);
}
# does patch correspond to [previous] difftree raw line

View File

@@ -112,4 +112,17 @@ do
'
done
test_expect_success 'two lines' '
>file &&
git add file &&
echo aaa >file &&
git diff >patch &&
git add file &&
echo bbb >file &&
git add file &&
test_must_fail git apply --check patch
'
test_done

View File

@@ -4,8 +4,6 @@ test_description='GIT_EDITOR, core.editor, and stuff'
. ./test-lib.sh
OLD_TERM="$TERM"
for i in GIT_EDITOR core_editor EDITOR VISUAL vi
do
cat >e-$i.sh <<-EOF
@@ -117,6 +115,4 @@ test_expect_success 'core.editor with a space' '
'
TERM="$OLD_TERM"
test_done

View File

@@ -0,0 +1,20 @@
#!/bin/sh
#
# Copyright (c) 2008 Santhosh Kumar Mani
test_description='git-svn can fetch renamed directories'
. ./lib-git-svn.sh
test_expect_success 'load repository with renamed directory' "
svnadmin load -q $rawsvnrepo < ../t9121/renamed-dir.dump
"
test_expect_success 'init and fetch repository' "
git svn init $svnrepo/newname &&
git svn fetch
"
test_done

90
t/t9121/renamed-dir.dump Normal file
View File

@@ -0,0 +1,90 @@
SVN-fs-dump-format-version: 2
UUID: 06b9b3ad-f546-4fbe-8328-fcb4e6ef5c3f
Revision-number: 0
Prop-content-length: 56
Content-length: 56
K 8
svn:date
V 27
2008-04-02T09:11:59.778557Z
PROPS-END
Revision-number: 1
Prop-content-length: 117
Content-length: 117
K 7
svn:log
V 14
initial import
K 10
svn:author
V 8
santhosh
K 8
svn:date
V 27
2008-04-02T09:13:03.170863Z
PROPS-END
Node-path: name
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: name/a.txt
Node-kind: file
Node-action: add
Prop-content-length: 71
Text-content-length: 6
Text-content-md5: b1946ac92492d2347c6235b4d2611184
Content-length: 77
K 13
svn:mime-type
V 10
text/plain
K 13
svn:eol-style
V 2
LF
PROPS-END
hello
Revision-number: 2
Prop-content-length: 109
Content-length: 109
K 7
svn:log
V 7
renamed
K 10
svn:author
V 8
santhosh
K 8
svn:date
V 27
2008-04-02T09:14:22.952186Z
PROPS-END
Node-path: newname
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 1
Node-copyfrom-path: name
Node-path: name
Node-action: delete