1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-11-05 08:47:56 +01:00
Find a file
Karsten Blees 85faec9d3a Win32: Unicode file name support (except dirent)
Replaces Windows "ANSI" APIs dealing with file- or path names with their
Unicode equivalent, adding UTF-8/UTF-16LE conversion as necessary.

The dirent API (opendir/readdir/closedir) is updated in a separate commit.

Adds trivial wrappers for access, chmod and chdir.

Adds wrapper for mktemp (needed for both mkstemp and mkdtemp).

The simplest way to convert a repository with legacy-encoded (e.g. Cp1252)
file names to UTF-8 ist to checkout with an old msysgit version and
"git add --all & git commit" with the new version.

Includes a fix for bug reported by John Chen:
On Windows XP (not Win7), directories cannot be deleted while a find handle
is open, causing "Deletion of directory '...' failed. Should I try again?"
prompts.

Prior to this commit, these failures were silently ignored due to
strbuf_free in is_dir_empty resetting GetLastError to ERROR_SUCCESS.

Close the find handle in is_dir_empty so that git doesn't block deletion
of the directory even after all other applications have released it.

Reported-by: John Chen <john0312@gmail.com>
Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Stepan Kasal <kasal@ucw.cz>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2014-07-15 11:19:08 -07:00
block-sha1
builtin Merge branch 'mg/verify-commit' 2014-07-10 11:27:34 -07:00
compat Win32: Unicode file name support (except dirent) 2014-07-15 11:19:08 -07:00
contrib Merge branch 'ep/avoid-test-a-o' 2014-06-25 12:23:56 -07:00
Documentation Merge branch 'maint' 2014-07-10 11:37:56 -07:00
ewah ewah_bitmap.c: do not assume size_t and eword_t are the same size 2014-04-22 16:21:16 -07:00
git-gui Merge git://repo.or.cz/git-gui 2014-06-26 13:44:11 -07:00
gitk-git Merge git://ozlabs.org/~paulus/gitk 2014-06-27 11:23:03 -07:00
gitweb Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
mergetools mergetools: add vimdiff3 mode 2014-04-22 12:49:07 -07:00
perl Merge branch 'mm/pager-less-sans-S' 2014-06-06 11:02:59 -07:00
po fr: a lot of good fixups 2014-05-17 19:08:59 +02:00
ppc
t Merge branch 'dt/refs-check-refname-component-sse-fix' 2014-07-10 11:27:55 -07:00
templates
vcs-svn
xdiff
.gitattributes
.gitignore Merge branch 'tb/unicode-6.3-zero-width' 2014-06-06 11:29:38 -07:00
.mailmap
abspath.c
aclocal.m4
advice.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
advice.h
alias.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
alloc.c commit: push commit_index update into alloc_commit_node 2014-06-12 10:29:42 -07:00
archive-tar.c
archive-zip.c
archive.c
archive.h
argv-array.c argv-array: drop "detach" code 2014-05-15 09:49:12 -07:00
argv-array.h argv-array: drop "detach" code 2014-05-15 09:49:12 -07:00
attr.c
attr.h
base85.c
bisect.c Merge branch 'nd/log-show-linear-break' 2014-04-03 12:38:11 -07:00
bisect.h
blob.c
blob.h
branch.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
branch.h
builtin.h verify-commit: scriptable commit signature verification 2014-06-23 15:50:31 -07:00
bulk-checkin.c
bulk-checkin.h
bundle.c Merge branch 'nd/log-show-linear-break' 2014-04-03 12:38:11 -07:00
bundle.h
cache-tree.c
cache-tree.h
cache.h Merge branch 'kb/path-max-must-go' 2014-07-10 11:27:47 -07:00
check-builtins.sh check-builtins.sh: use the $(...) construct for command substitution 2014-03-25 13:42:52 -07:00
check-racy.c
check_bindir check_bindir: avoid "test <cond> -a/-o <cond>" 2014-06-09 14:47:06 -07:00
color.c
color.h
column.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
column.h
combine-diff.c Merge branch 'mk/show-s-no-extra-blank-line-for-merges' into maint 2014-06-25 11:49:39 -07:00
command-list.txt verify-commit: scriptable commit signature verification 2014-06-23 15:50:31 -07:00
commit-slab.h commit-slab: provide a static initializer 2014-06-13 12:08:17 -07:00
commit.c Merge branch 'mg/verify-commit' 2014-07-10 11:27:34 -07:00
commit.h reuse cached commit buffer when parsing signatures 2014-06-13 12:10:13 -07:00
config.c Merge branch 'ow/config-mailmap-pathname' into maint 2014-06-25 11:45:55 -07:00
config.mak.in
config.mak.uname Merge branch 'sk/mingw-dirent' 2014-07-09 11:34:27 -07:00
configure.ac Merge branch 'ks/tree-diff-nway' 2014-06-03 12:06:40 -07:00
connect.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
connect.h
connected.c
connected.h
convert.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
convert.h
copy.c
COPYING
credential-cache--daemon.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
credential-cache.c
credential-store.c
credential.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
credential.h
csum-file.c
csum-file.h
ctype.c
daemon.c daemon: use skip_prefix to avoid magic numbers 2014-06-20 10:45:18 -07:00
date.c i18n: fix uncatchable comments for translators in date.c 2014-04-17 11:03:28 -07:00
decorate.c
decorate.h
delta.h comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
diff-delta.c
diff-lib.c Merge branch 'jk/diff-files-assume-unchanged' into maint 2014-06-25 11:47:09 -07:00
diff-no-index.c Merge branch 'jc/fix-diff-no-index-diff-opt-parse' into maint 2014-04-09 11:59:16 -07:00
diff.c Merge branch 'jk/diff-follow-must-take-one-pathspec' into maint 2014-06-25 11:47:23 -07:00
diff.h Merge branch 'ks/tree-diff-nway' 2014-06-03 12:06:40 -07:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c
diffcore.h
dir.c cleanup duplicate name_compare() functions 2014-06-20 10:12:14 -07:00
dir.h
editor.c
entry.c Merge branch 'mh/remove-subtree-long-pathname-fix' into maint 2014-04-03 13:39:05 -07:00
environment.c setup_git_env(): introduce git_path_from_env() helper 2014-06-25 10:33:27 -07:00
exec_cmd.c
exec_cmd.h
fast-import.c fast-import: refactor parsing of spaces 2014-06-20 10:45:19 -07:00
fetch-pack.c Merge branch 'jk/skip-prefix' 2014-07-09 11:33:28 -07:00
fetch-pack.h
fmt-merge-msg.h
fsck.c Merge branch 'jk/skip-prefix' 2014-07-09 11:33:28 -07:00
fsck.h
generate-cmdlist.sh
gettext.c
gettext.h
git-add--interactive.perl Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
git-am.sh Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
git-archimport.perl
git-bisect.sh git-bisect.sh: avoid "test <cond> -a/-o <cond>" 2014-06-09 14:47:07 -07:00
git-compat-util.h Merge branch 'jk/skip-prefix' 2014-07-09 11:33:28 -07:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl
git-difftool--helper.sh
git-difftool.perl
git-filter-branch.sh
git-instaweb.sh git-instaweb: add support for Apache 2.4 2014-05-27 12:57:19 -07:00
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh git-mergetool.sh: avoid "test <cond> -a/-o <cond>" 2014-06-09 14:47:07 -07:00
git-p4.py git-p4: fix submit in non --prepare-p4-only mode 2014-06-13 11:04:04 -07:00
git-parse-remote.sh
git-pull.sh Sync with maint 2014-06-12 12:22:38 -07:00
git-quiltimport.sh
git-rebase--am.sh Merge branch 'km/avoid-non-function-return-in-rebase' 2014-04-21 10:42:46 -07:00
git-rebase--interactive.sh Merge branch 'ep/avoid-test-a-o' 2014-06-25 12:23:56 -07:00
git-rebase--merge.sh Merge branch 'bc/fix-rebase-merge-skip' 2014-07-02 12:53:04 -07:00
git-rebase.sh Merge branch 'rr/rebase-autostash-fix' into maint 2014-06-25 11:49:31 -07:00
git-relink.perl
git-remote-testgit.sh Merge branch 'ep/shell-assign-and-export-vars' 2014-06-06 11:38:51 -07:00
git-request-pull.sh Merge branch 'lt/request-pull' 2014-05-19 10:35:36 -07:00
git-send-email.perl Merge branch 'mt/send-email-cover-to-cc' 2014-06-20 13:12:20 -07:00
git-sh-i18n.sh
git-sh-setup.sh pager: remove 'S' from $LESS by default 2014-05-07 13:41:04 -07:00
git-stash.sh Merge branch 'ep/shell-assign-and-export-vars' 2014-06-06 11:38:51 -07:00
git-submodule.sh git-submodule.sh: avoid "echo" path-like values 2014-06-19 13:30:03 -07:00
git-svn.perl Git 2.0: git svn: Set default --prefix='origin/' if --prefix is not given 2014-04-19 11:30:13 +00:00
GIT-VERSION-GEN Git 2.0.1 2014-06-25 12:21:11 -07:00
git-web--browse.sh git-web--browse.sh: use the $( ... ) construct for command substitution 2014-04-23 15:17:02 -07:00
git.c Merge branch 'mg/verify-commit' 2014-07-10 11:27:34 -07:00
git.rc
git.spec.in
gpg-interface.c gpg-interface: provide access to the payload 2014-06-23 15:50:30 -07:00
gpg-interface.h gpg-interface: provide access to the payload 2014-06-23 15:50:30 -07:00
graph.c
graph.h
grep.c Merge branch 'as/grep-fullname-config' 2014-06-03 12:06:39 -07:00
grep.h
hashmap.c
hashmap.h
help.c use skip_prefix to avoid repeated calculations 2014-06-20 10:45:19 -07:00
help.h
hex.c
http-backend.c use skip_prefix to avoid magic numbers 2014-06-20 10:44:45 -07:00
http-fetch.c
http-push.c Merge branch 'jk/xstrfmt' 2014-07-09 11:34:05 -07:00
http-walker.c use xstrfmt to replace xmalloc + sprintf 2014-06-19 15:20:54 -07:00
http.c Merge branch 'jk/skip-prefix' 2014-07-09 11:33:28 -07:00
http.h http: optionally extract charset parameter from content-type 2014-05-27 09:59:19 -07:00
ident.c
imap-send.c imap-send: use skip_prefix instead of using magic numbers 2014-06-20 10:45:19 -07:00
INSTALL
khash.h
kwset.c
kwset.h
levenshtein.c
levenshtein.h
LGPL-2.1
line-log.c line-log: use commit_list_append() instead of duplicating its code 2014-07-08 11:01:53 -07:00
line-log.h
line-range.c
line-range.h
list-objects.c Merge branch 'jk/pack-bitmap' 2014-04-08 12:00:33 -07:00
list-objects.h
ll-merge.c
ll-merge.h
lockfile.c
log-tree.c reuse cached commit buffer when parsing signatures 2014-06-13 12:10:13 -07:00
log-tree.h
mailmap.c
mailmap.h
Makefile Merge branch 'nd/index-pack-one-fd-per-thread' into maint 2014-06-25 11:47:58 -07:00
match-trees.c use xstrfmt to replace xmalloc + sprintf 2014-06-19 15:20:54 -07:00
merge-blobs.c
merge-blobs.h
merge-recursive.c Merge branch 'jk/xstrfmt' 2014-07-09 11:34:05 -07:00
merge-recursive.h
merge.c merge: use argv_array when spawning merge strategy 2014-06-19 15:20:55 -07:00
mergesort.c
mergesort.h
name-hash.c name-hash.c: replace cache_name_compare() with memcmp(3) 2014-06-20 10:08:10 -07:00
notes-cache.c Merge branch 'jk/commit-buffer-length' 2014-07-02 12:53:02 -07:00
notes-cache.h
notes-merge.c commit: record buffer length in cache 2014-06-13 12:09:38 -07:00
notes-merge.h
notes-utils.c Merge branch 'jk/commit-buffer-length' 2014-07-02 12:53:02 -07:00
notes-utils.h commit_tree: take a pointer/len pair rather than a const strbuf 2014-06-12 10:29:41 -07:00
notes.c notes.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
notes.h
object.c commit: record buffer length in cache 2014-06-13 12:09:38 -07:00
object.h Merge branch 'nd/log-show-linear-break' 2014-04-03 12:38:11 -07:00
pack-bitmap-write.c
pack-bitmap.c add ignore_missing_links mode to revwalk 2014-04-04 13:31:38 -07:00
pack-bitmap.h
pack-check.c
pack-objects.c pack-objects: use free()+xcalloc() instead of xrealloc()+memset() 2014-06-02 13:51:22 -07:00
pack-objects.h
pack-revindex.c pack-revindex.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
pack-revindex.h
pack-write.c
pack.h
pager.c Merge branch 'je/pager-do-not-recurse' 2014-06-06 11:17:00 -07:00
parse-options-cb.c
parse-options.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
parse-options.h Merge branch 'jk/squelch-compiler-warning-from-funny-error-macro' 2014-06-06 11:21:36 -07:00
patch-delta.c
patch-ids.c
patch-ids.h
path.c Windows: allow using UNC path for git repository 2014-06-10 13:30:04 -07:00
pathspec.c
pathspec.h
pkt-line.c
pkt-line.h comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
preload-index.c symlinks: remove PATH_MAX limitation 2014-07-07 11:22:42 -07:00
pretty.c Merge branch 'mg/verify-commit' 2014-07-10 11:27:34 -07:00
prio-queue.c
prio-queue.h
progress.c
progress.h
prompt.c
prompt.h
quote.c
quote.h
reachable.c
reachable.h
read-cache.c Merge branch 'ym/fix-opportunistic-index-update-race' into maint 2014-06-25 11:49:48 -07:00
README
reflog-walk.c reflog-walk.c: rearrange xcalloc arguments 2014-05-27 14:02:45 -07:00
reflog-walk.h
refs.c Merge branch 'dt/refs-check-refname-component-sse-fix' 2014-07-10 11:27:55 -07:00
refs.h Merge branch 'jl/remote-rm-prune' 2014-06-16 12:17:58 -07:00
RelNotes Start preparing for 2.0.2 2014-07-10 11:15:10 -07:00
remote-curl.c use skip_prefix to avoid repeating strings 2014-06-20 10:44:45 -07:00
remote-testsvn.c
remote.c Merge branch 'jk/xstrfmt' 2014-07-09 11:34:05 -07:00
remote.h
replace_object.c
rerere.c
rerere.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'jk/commit-buffer-length' 2014-07-02 12:53:02 -07:00
revision.h Merge branch 'jk/pack-bitmap' 2014-04-08 12:00:33 -07:00
run-command.c run-command: store an optional argv_array 2014-05-15 09:49:09 -07:00
run-command.h run-command: store an optional argv_array 2014-05-15 09:49:09 -07:00
send-pack.c
send-pack.h
sequencer.c Merge branch 'jk/xstrfmt' 2014-07-09 11:34:05 -07:00
sequencer.h
server-info.c
setup.c Merge branch 'mw/symlinks' into maint 2014-05-28 15:45:57 -07:00
sh-i18n--envsubst.c
sha1-array.c
sha1-array.h
sha1-lookup.c
sha1-lookup.h
sha1_file.c Merge branch 'rs/fix-alt-odb-path-comparison' 2014-07-10 11:27:52 -07:00
sha1_name.c Merge branch 'jk/xstrfmt' 2014-07-09 11:34:05 -07:00
shallow.c
shell.c use xstrfmt to replace xmalloc + strcpy/strcat 2014-06-19 15:20:54 -07:00
shortlog.h
show-index.c
sideband.c sideband.c: do not use ANSI control sequence on non-terminal 2014-06-02 11:02:27 -07:00
sideband.h
sigchain.c
sigchain.h
strbuf.c strbuf: add xstrfmt helper 2014-06-19 12:25:17 -07:00
strbuf.h strbuf: add xstrfmt helper 2014-06-19 12:25:17 -07:00
streaming.c
streaming.h
string-list.c
string-list.h string-list: spell all values out that are given to a string_list initializer 2014-06-06 13:49:19 -07:00
submodule.c
submodule.h
symlinks.c symlinks: remove PATH_MAX limitation 2014-07-07 11:22:42 -07:00
tag.c
tag.h
tar.h
test-chmtime.c comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
test-ctype.c
test-date.c
test-delta.c
test-dump-cache-tree.c
test-genrandom.c
test-hashmap.c
test-index-version.c
test-line-buffer.c
test-match-trees.c
test-mergesort.c
test-mktemp.c
test-parse-options.c parse-options: remove unused OPT_SET_PTR 2014-03-31 13:01:19 -07:00
test-path-utils.c
test-prio-queue.c
test-read-cache.c
test-regex.c
test-revision-walking.c
test-run-command.c
test-scrap-cache-tree.c
test-sha1.c
test-sha1.sh
test-sigchain.c
test-string-list.c
test-subprocess.c
test-svn-fe.c
test-urlmatch-normalization.c
test-wildmatch.c
thread-utils.c
thread-utils.h
trace.c
transport-helper.c transport-helper: avoid reading past end-of-string 2014-06-20 10:44:44 -07:00
transport.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
transport.h
tree-diff.c tree-diff: rework diff_tree() to generate diffs for multiparent cases as well 2014-04-07 14:40:46 -07:00
tree-walk.c cleanup duplicate name_compare() functions 2014-06-20 10:12:14 -07:00
tree-walk.h
tree.c
tree.h
unicode_width.h Update of unicode_width.h to Unicode Version 7.0 2014-06-18 10:53:45 -07:00
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c Merge branch 'jk/xstrfmt' 2014-07-09 11:34:05 -07:00
unpack-trees.h
update_unicode.sh utf8: make it easier to auto-update git_wcwidth() 2014-05-12 10:38:01 -07:00
upload-pack.c Merge branch 'nd/log-show-linear-break' 2014-04-03 12:38:11 -07:00
url.c
url.h
urlmatch.c refactor skip_prefix to return a boolean 2014-06-20 10:44:43 -07:00
urlmatch.h
usage.c
userdiff.c
userdiff.h
utf8.c Merge branch 'tb/unicode-6.3-zero-width' 2014-06-06 11:29:38 -07:00
utf8.h
varint.c
varint.h
version.c
version.h
versioncmp.c
walker.c walker_fetch: fix minor memory leak 2014-06-19 15:20:56 -07:00
walker.h
wildmatch.c
wildmatch.h
wrap-for-bin.sh
wrapper.c read-cache.c: verify index file before we opportunistically update it 2014-04-10 12:27:58 -07:00
write_or_die.c
ws.c
wt-status.c Merge branch 'rs/status-code-clean-up' 2014-07-10 11:27:50 -07:00
wt-status.h Merge branch 'mm/status-porcelain-format-i18n-fix' 2014-03-31 16:31:25 -07:00
xdiff-interface.c
xdiff-interface.h
zlib.c

////////////////////////////////////////////////////////////////

	Git - the stupid content tracker

////////////////////////////////////////////////////////////////

"git" can mean anything, depending on your mood.

 - random three-letter combination that is pronounceable, and not
   actually used by any common UNIX command.  The fact that it is a
   mispronunciation of "get" may or may not be relevant.
 - stupid. contemptible and despicable. simple. Take your pick from the
   dictionary of slang.
 - "global information tracker": you're in a good mood, and it actually
   works for you. Angels sing, and a light suddenly fills the room.
 - "goddamn idiotic truckload of sh*t": when it breaks

Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.

Git is an Open Source project covered by the GNU General Public
License version 2 (some parts of it are under different licenses,
compatible with the GPLv2). It was originally written by Linus
Torvalds with help of a group of hackers around the net.

Please read the file INSTALL for installation instructions.

See Documentation/gittutorial.txt to get started, then see
Documentation/everyday.txt for a useful minimum set of commands, and
Documentation/git-commandname.txt for documentation of each command.
If git has been correctly installed, then the tutorial can also be
read with "man gittutorial" or "git help tutorial", and the
documentation of each command with "man git-commandname" or "git help
commandname".

CVS users may also want to read Documentation/gitcvs-migration.txt
("man gitcvs-migration" or "git help cvs-migration" if git is
installed).

Many Git online resources are accessible from http://git-scm.com/
including full documentation and Git related tools.

The user discussion and development of Git take place on the Git
mailing list -- everyone is welcome to post bug reports, feature
requests, comments and patches to git@vger.kernel.org (read
Documentation/SubmittingPatches for instructions on patch submission).
To subscribe to the list, send an email with just "subscribe git" in
the body to majordomo@vger.kernel.org. The mailing list archives are
available at http://news.gmane.org/gmane.comp.version-control.git/,
http://marc.info/?l=git and other archival sites.

The maintainer frequently sends the "What's cooking" reports that
list the current status of various development topics to the mailing
list.  The discussion following them give a good reference for
project status, development direction and remaining tasks.