summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-01-26git p4 test: use LineEnd unix in windows tests tooLibravatar Pete Wyckoff1-0/+1
In all clients, even those created on windows, use unix line endings. This makes it possible to verify file contents without doing OS-specific comparisons in all the tests. Tests in t9802-git-p4-filetype.sh are used to make sure that the other LineEnd options continue to work. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-26git p4 test: newline handlingLibravatar Pete Wyckoff1-0/+117
P4 stores newlines in the depos as \n. By default, git does this too, both on unix and windows. Test to make sure that this stays true. Both git and p4 have mechanisms to use \r\n in the working directory. Exercise these. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-26git p4: scrub crlf for utf16 files on windowsLibravatar Pete Wyckoff1-1/+23
Files of type utf16 are handled with "p4 print" instead of the normal "p4 -G print" interface due to how the latter does not produce correct output. See 55aa571 (git-p4: handle utf16 filetype properly, 2011-09-17) for details. On windows, though, "p4 print" can not be told which line endings to use, as there is no underlying client, and always chooses crlf, even for utf16 files. Convert the \r\n into \n when importing utf16 files. The fix for this is complex, in that the problem is a property of the NT version of p4. There are old versions of p4 that were compiled directly for cygwin that should not be subjected to text replacement. The right check here, then, is to look at the p4 version, not the OS version. Note also that on cygwin, platform.system() is "CYGWIN_NT-5.1" or similar, not "Windows". Add a function to memoize the p4 version string and use it to check for "/NT", indicating the Windows build of p4. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-26git p4: remove unreachable windows \r\n conversion codeLibravatar Pete Wyckoff1-9/+0
Replacing \r\n with \n on windows was added in c1f9197 (Replace \r\n with \n when importing from p4 on Windows, 2007-05-24), to work around an oddity with "p4 print" on windows. Text files are printed with "\r\r\n" endings, regardless of whether they were created on unix or windows, and regardless of the client LineEnd setting. As of d2c6dd3 (use p4CmdList() to get file contents in Python dicts. This is more robust., 2007-05-23), git-p4 uses "p4 -G print", which generates files in a raw format. As the native line ending format if p4 is \n, there will be no \r\n in the raw text. Actually, it is possible to generate a text file so that the p4 representation includes embedded \r\n, even though this is not normal on either windows or unix. In that case the code would have mistakenly stripped them out, but now they will be left intact. More information on how p4 deals with line endings is here: http://kb.perforce.com/article/63 Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-26git p4 test: translate windows paths for cygwinLibravatar Pete Wyckoff3-3/+26
Native windows binaries do not understand posix-like path mapping offered by cygwin. Convert paths to native using "cygpath --windows" before presenting them to p4d. This is done using the AltRoots mechanism of p4. Both the posix and windows forms are put in the client specification, allowing p4 to find its location by native path even though the environment reports a different PWD. Shell operations in tests will use the normal form of $cli, which will look like a posix path in cygwin, while p4 will use AltRoots to match against the windows form of the working directory. This mechanism also handles the symlink issue that was fixed in 23bd0c9 (git p4 test: use real_path to resolve p4 client symlinks, 2012-06-27). Now that every p4 client view has an AltRoots with the real_path in it, explicitly calculating the real_path elsewhere is not necessary. Thanks-to: Sebastian Schuberth <sschuberth@gmail.com> Thanks-to: Johannes Sixt <j6t@kdbg.org> fixup! git p4 test: translate windows paths for cygwin Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-26git p4 test: start p4d inside its db dirLibravatar Pete Wyckoff1-2/+5
This will avoid having to do native path conversion for windows. Also may be a bit cleaner always to know that p4d has that working directory, instead of wherever the function was called from. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-26git p4 test: use client_view in t9806Libravatar Pete Wyckoff2-30/+23
Use the standard client_view function from lib-git-p4.sh instead of building one by hand. This requires a bit of rework, using the current value of $P4CLIENT for the client name. It also reorganizes the test to isolate changes to $P4CLIENT and $cli in a subshell. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-26git p4 test: avoid loop in client_viewLibravatar Pete Wyckoff2-4/+2
The printf command re-interprets the format string as long as there are arguments to consume. Use this to simplify a for loop in the client_view() library function. This requires a fix to one of the client_view callers. An errant \n in the string was converted into a harmless newline in the input to "p4 client -i", but now shows up as a literal \n as passed through by "%s". Remove the \n. Based-on-patch-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-26git p4 test: use client_view to build the initial clientLibravatar Pete Wyckoff1-9/+2
Simplify the code a bit by using an existing function. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-26git p4: generate better error message for bad depot pathLibravatar Pete Wyckoff2-0/+6
Depot paths must start with //. Exit with a better explanation when a bad depot path is supplied. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-26git p4: remove unused importsLibravatar Pete Wyckoff1-5/+9
Found by "pyflakes" checker tool. Modules shelve, getopt were unused. Module os.path is exported by os. Reformat one-per-line as is PEP008 suggested style. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-26git p4: temp branch name should use / even on windowsLibravatar Pete Wyckoff1-1/+1
Commit fed2369 (git-p4: Search for parent commit on branch creation, 2012-01-25) uses temporary branches to help find the parent of a new p4 branch. The temp branches are of the form "git-p4-tmp/%d" for some p4 change number. Mistakenly, this string was made using os.path.join() instead of just string concatenation. On windows, this turns into a backslash (\), which is not allowed in git branch names. Reported-by: Casey McGinty <casey.mcginty@gmail.com> Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-25Merge branch 'for-junio' of git://bogomips.org/git-svnLibravatar Junio C Hamano4-26/+25
* 'for-junio' of git://bogomips.org/git-svn: git-svn: Simplify calculation of GIT_DIR git-svn: cleanup sprintf usage for uppercasing hex
2013-01-25Update draft release notes to 1.8.2Libravatar Junio C Hamano1-3/+33
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-25Merge branch 'nd/retire-fnmatch'Libravatar Junio C Hamano7-62/+249
Replace our use of fnmatch(3) with a more feature-rich wildmatch. A handful patches at the bottom have been moved to nd/wildmatch to graduate as part of that branch, before this series solidifies. We may want to mark USE_WILDMATCH as an experimental curiosity a bit more clearly (i.e. should not be enabled in production environment, because it will make the behaviour between builds unpredictable). * nd/retire-fnmatch: Makefile: add USE_WILDMATCH to use wildmatch as fnmatch wildmatch: advance faster in <asterisk> + <literal> patterns wildmatch: make a special case for "*/" with FNM_PATHNAME test-wildmatch: add "perf" command to compare wildmatch and fnmatch wildmatch: support "no FNM_PATHNAME" mode wildmatch: make dowild() take arbitrary flags wildmatch: rename constants and update prototype
2013-01-25Merge branch 'jc/doc-maintainer'Libravatar Junio C Hamano1-91/+256
Describe tools for automation that were invented since this document was originally written. * jc/doc-maintainer: howto/maintain: document "### match next" convention in jch/pu branch howto/maintain: mark titles for asciidoc Documentation: update "howto maintain git"
2013-01-25howto/maintain: document "### match next" convention in jch/pu branchLibravatar Junio C Hamano1-5/+6
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-24git-svn: Simplify calculation of GIT_DIRLibravatar Barry Wardell2-23/+22
Since git-rev-parse already checks for the $GIT_DIR environment variable and that it returns an actual git repository, there is no need to repeat the checks again here. This also fixes a problem where git-svn did not work in cases where .git was a file with a gitdir: link. [ew: squashed test case, delay setting GIT_DIR until after `git rev-parse --cdup` to fix t9101, (thanks to Junio)] Signed-off-by: Barry Wardell <barry.wardell@gmail.com> Signed-off-by: Eric Wong <normalperson@yhbt.net>
2013-01-24git-svn: cleanup sprintf usage for uppercasing hexLibravatar Eric Wong2-3/+3
We do not need to call uc() separately for sprintf("%x") as sprintf("%X") is available. Signed-off-by: Eric Wong <normalperson@yhbt.net> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
2013-01-23Merge branch 'as/pre-push-hook'Libravatar Junio C Hamano10-20/+302
Add an extra hook so that "git push" that is run without making sure what is being pushed is sane can be checked and rejected (as opposed to the user deciding not pushing). * as/pre-push-hook: Add sample pre-push hook script push: Add support for pre-push hooks hooks: Add function to check if a hook exists
2013-01-23Merge branch 'ch/add-auto-submitted-in-sample-post-receive-email'Libravatar Junio C Hamano1-0/+1
* ch/add-auto-submitted-in-sample-post-receive-email: Add Auto-Submitted header to post-receive-email
2013-01-23Merge branch 'as/check-ignore'Libravatar Junio C Hamano20-119/+1251
Add a new command "git check-ignore" for debugging .gitignore files. The variable names may want to get cleaned up but that can be done in-tree. * as/check-ignore: clean.c, ls-files.c: respect encapsulation of exclude_list_groups t0008: avoid brace expansion add git-check-ignore sub-command setup.c: document get_pathspec() add.c: extract new die_if_path_beyond_symlink() for reuse add.c: extract check_path_for_gitlink() from treat_gitlinks() for reuse pathspec.c: rename newly public functions for clarity add.c: move pathspec matchers into new pathspec.c for reuse add.c: remove unused argument from validate_pathspec() dir.c: improve docs for match_pathspec() and match_pathspec_depth() dir.c: provide clear_directory() for reclaiming dir_struct memory dir.c: keep track of where patterns came from dir.c: use a single struct exclude_list per source of excludes Conflicts: builtin/ls-files.c dir.c
2013-01-23Merge branch 'rs/clarify-entry-cmp-sslice'Libravatar Junio C Hamano1-6/+4
* rs/clarify-entry-cmp-sslice: refs: use strncmp() instead of strlen() and memcmp()
2013-01-23Merge branch 'jk/suppress-clang-warning'Libravatar Junio C Hamano3-3/+3
* jk/suppress-clang-warning: fix clang -Wunused-value warnings for error functions
2013-01-23Merge branch 'cr/push-force-tag-update'Libravatar Junio C Hamano3-58/+7
Regression fix to stop "git push" complaining "target ref already exists", when it is not the real reason the command rejected the request (e.g. non-fast-forward). * cr/push-force-tag-update: push: fix "refs/tags/ hierarchy cannot be updated without --force"
2013-01-23Merge branch 'mh/imap-send-shrinkage'Libravatar Junio C Hamano1-253/+65
Remove a lot of unused code from "git imap-send". * mh/imap-send-shrinkage: imap-send.c: simplify logic in lf_to_crlf() imap-send.c: fold struct store into struct imap_store imap-send.c: remove unused field imap_store::uidvalidity imap-send.c: use struct imap_store instead of struct store imap-send.c: remove unused field imap_store::trashnc imap-send.c: remove namespace fields from struct imap imap-send.c: remove struct imap argument to parse_imap_list_l() imap-send.c: inline parse_imap_list() in parse_list() imap-send.c: remove some unused fields from struct store imap-send.c: remove struct message imap-send.c: remove struct store_conf iamp-send.c: remove unused struct imap_store_conf imap-send.c: remove struct msg_data imap-send.c: remove msg_data::flags, which was always zero
2013-01-23Merge branch 'mo/cvs-server-updates'Libravatar Junio C Hamano3-317/+2198
Various git-cvsserver updates. * mo/cvs-server-updates: t9402: Use TABs for indentation t9402: Rename check.cvsCount and check.list t9402: Simplify git ls-tree t9402: Add missing &&; Code style t9402: No space after IO-redirection t9402: Dont use test_must_fail cvs t9402: improve check_end_tree() and check_end_full_tree() t9402: sed -i is not portable cvsserver Documentation: new cvs ... -r support cvsserver: add t9402 to test branch and tag refs cvsserver: support -r and sticky tags for most operations cvsserver: Add version awareness to argsfromdir cvsserver: generalize getmeta() to recognize commit refs cvsserver: implement req_Sticky and related utilities cvsserver: add misc commit lookup, file meta data, and file listing functions cvsserver: define a tag name character escape mechanism cvsserver: cleanup extra slashes in filename arguments cvsserver: factor out git-log parsing logic
2013-01-23Merge branch 'jc/makefile-perl-python-path-doc'Libravatar Junio C Hamano1-0/+5
* 'jc/makefile-perl-python-path-doc': Makefile: add description on PERL/PYTHON_PATH
2013-01-23Merge git://ozlabs.org/~paulus/gitkLibravatar Junio C Hamano2-365/+504
* git://ozlabs.org/~paulus/gitk: gitk: Display important heads even when there are many gitk: Improve display of list of nearby tags and heads gitk: Fix display of branch names on some commits gitk: Update Swedish translation (296t) gitk: When searching, only highlight files when in Patch mode gitk: Fix error message when clicking on a connecting line gitk: Fix crash when not using themed widgets gitk: Use bindshiftfunctionkey to bind Shift-F5 gitk: Refactor code for binding modified function keys gitk: Work around empty back and forward images when buttons are disabled gitk: Highlight first search result immediately on incremental search gitk: Highlight current search hit in orange gitk: Synchronize highlighting in file view when scrolling diff
2013-01-22Merge branch 'jc/merge-blobs'Libravatar Junio C Hamano1-1/+1
* jc/merge-blobs: Makefile: Replace merge-file.h with merge-blobs.h in LIB_H
2013-01-22Makefile: Replace merge-file.h with merge-blobs.h in LIB_HLibravatar Ramsay Jones1-1/+1
Commit fa2364ec ("Which merge_file() function do you mean?", 06-12-2012) renamed the files merge-file.[ch] to merge-blobs.[ch], but forgot to rename the header file in the definition of the LIB_H macro. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-22Update draft release notes to 1.8.2Libravatar Junio C Hamano1-2/+37
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-22Merge branch 'mz/reset-misc'Libravatar Junio C Hamano5-171/+214
Various 'reset' optimizations and clean-ups, followed by a change to allow "git reset" to work even on an unborn branch. * mz/reset-misc: reset: update documentation to require only tree-ish with paths reset [--mixed]: use diff-based reset whether or not pathspec was given reset: allow reset on unborn branch reset $sha1 $pathspec: require $sha1 only to be treeish reset.c: inline update_index_refresh() reset.c: finish entire cmd_reset() whether or not pathspec is given reset [--mixed]: only write index file once reset.c: move lock, write and commit out of update_index_refresh() reset.c: move update_index_refresh() call out of read_from_tree() reset.c: replace switch by if-else reset: avoid redundant error message reset --keep: only write index file once reset.c: share call to die_if_unmerged_cache() reset.c: extract function for updating {ORIG_,}HEAD reset.c: remove unnecessary variable 'i' reset.c: extract function for parsing arguments reset: don't allow "git reset -- $pathspec" in bare repo reset.c: pass pathspec around instead of (prefix, argv) pair reset $pathspec: exit with code 0 if successful reset $pathspec: no need to discard index
2013-01-22Merge branch 'nd/fix-directory-attrs-off-by-one'Libravatar Junio C Hamano1-20/+18
Fix performance regression introduced by an earlier change to let attributes apply to directories. Needs to be merged to maint, as 94bc671a was merged there already. * nd/fix-directory-attrs-off-by-one: attr: avoid calling find_basename() twice per path attr: fix off-by-one directory component length calculation
2013-01-21Merge branch 'pw/p4-branch-fixes'Libravatar Junio C Hamano4-58/+253
Fix "git p4" around branch handling. * pw/p4-branch-fixes: git p4: fix submit when no master branch git p4 test: keep P4CLIENT changes inside subshells git p4: fix sync --branch when no master branch git p4: fail gracefully on sync with no master branch git p4: rearrange self.initialParent use git p4: allow short ref names to --branch git p4 doc: fix branch detection example git p4: clone --branch should checkout master git p4: verify expected refs in clone --bare test git p4: create p4/HEAD on initial clone git p4: inline listExistingP4GitBranches git p4: add comments to p4BranchesInGit git p4: rearrange and simplify hasOrigin handling git p4: test sync/clone --branch behavior
2013-01-21Merge branch 'mh/remote-hg-mode-bits-fix'Libravatar Junio C Hamano2-1/+69
Update to the Hg remote helper (in contrib/). * mh/remote-hg-mode-bits-fix: remote-hg: fix handling of file perms when pushing
2013-01-21Merge branch 'fc/remote-hg-fixup-url'Libravatar Junio C Hamano1-0/+11
Update to the Hg remote helper (in contrib/). * fc/remote-hg-fixup-url: remote-hg: store converted URL
2013-01-21Merge branch 'zk/clean-report-failure'Libravatar Junio C Hamano1-29/+125
"git clean" states what it is going to remove and then goes on to remove it, but sometimes it only discovers things that cannot be removed after recursing into a directory, which makes the output confusing and even wrong. * zk/clean-report-failure: git-clean: Display more accurate delete messages
2013-01-21Merge branch 'ph/rebase-preserve-all-merges'Libravatar Junio C Hamano1-1/+6
An earlier change to add --keep-empty option broke "git rebase --preserve-merges" and lost merge commits that end up being the same as its parent. * ph/rebase-preserve-all-merges: rebase --preserve-merges: keep all merge commits including empty ones
2013-01-21Merge branch 'nd/clone-no-separate-git-dir-with-bare'Libravatar Junio C Hamano1-0/+2
Forbid a useless combination of options to "git clone". * nd/clone-no-separate-git-dir-with-bare: clone: forbid --bare --separate-git-dir <dir>
2013-01-21Merge branch 'maint'Libravatar Junio C Hamano1-1/+1
* maint: git-for-each-ref.txt: 'raw' is a supported date format
2013-01-21git-for-each-ref.txt: 'raw' is a supported date formatLibravatar John Keeping1-1/+1
Commit 7dff9b3 (Support 'raw' date format) added a raw date format. Update the git-for-each-ref documentation to include this. Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-20Update draft release notes to 1.8.2Libravatar Junio C Hamano1-0/+7
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-20Merge branch 'maint'Libravatar Junio C Hamano1-0/+13
2013-01-20Start preparing for 1.8.1.2Libravatar Junio C Hamano2-1/+14
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-20Merge branch 'nz/send-email-headers-are-case-insensitive' into maintLibravatar Junio C Hamano1-5/+5
When users spell "cc:" in lowercase in the fake "header" in the trailer part, "git send-email" failed to pick up the addresses from there. As e-mail headers field names are case insensitive, this script should follow suit and treat "cc:" and "Cc:" the same way. * nz/send-email-headers-are-case-insensitive: git-send-email: treat field names as case-insensitively
2013-01-20Merge branch 'rs/zip-with-uncompressed-size-in-the-header' into maintLibravatar Junio C Hamano1-5/+2
"git archive" did not record uncompressed size in the header when streaming a zip archive, which confused some implementations of unzip. * rs/zip-with-uncompressed-size-in-the-header: archive-zip: write uncompressed size into header even with streaming
2013-01-20Merge branch 'rs/zip-tests' into maintLibravatar Junio C Hamano5-80/+140
* rs/zip-tests: t5003: check if unzip supports symlinks t5000, t5003: move ZIP tests into their own script t0024, t5000: use test_lazy_prereq for UNZIP t0024, t5000: clear variable UNZIP, use GIT_UNZIP instead
2013-01-20Merge git://git.bogomips.org/git-svnLibravatar Junio C Hamano1-1/+2
* git://git.bogomips.org/git-svn: git-svn: do not escape certain characters in paths
2013-01-20Merge branch 'rt/commit-cleanup-config'Libravatar Junio C Hamano5-9/+97
Add a configuration variable to set default clean-up mode other than "strip". * rt/commit-cleanup-config: commit: make default of "cleanup" option configurable