Code Monkey home page Code Monkey logo

msysgit / git Goto Github PK

View Code? Open in Web Editor NEW

This project forked from git-for-windows/git

1.0K 1.0K 331.0 133.19 MB

msysGit-based Git for Windows 1.x is now superseded by Git for Windows 2.x

Home Page: http://github.com/git-for-windows/git

License: Other

Shell 33.47% Groff 0.23% Makefile 0.96% C 43.64% C++ 1.92% Perl 9.32% Emacs Lisp 0.73% Python 2.29% PHP 0.07% Go 0.13% Tcl 6.41% JavaScript 0.42% CSS 0.09% Assembly 0.06% Objective-C 0.01% M4 0.27%

git's Introduction

Please note!

Git for Windows 1.x was retired on August 18th, 2015, superseded by Git for Windows 2.x. The development environment of Git for Windows 2.x is no longer maintained in a monolithic Git repository but rather as the Git SDK, a friendly fork of MSys2 pre-configured to ease the development of Git for Windows.

Build environment for Git for Windows 1.x

This is the build environment -- also known as msysGit -- for Git for Windows.

The easiest way is to install it via the net installer. This installer will clone our two repositories, including all the necessary components to build Git for Windows, and perform an initial build.

The build environment

msysGit brings a few components that are required to build Git:

  • Bash, a Unix-type command-line shell. Quite a few components of Git itself are still shell scripts. Therefore, Bash is required to execute Git commands (see the output of cd /git && git ls-files \*.sh for a full list).
  • the GNU C Compiler. Since we try to rely only on free software (apart from the Operating System, of course), we think it makes more sense to rely on GCC than on Visual Studio express. Also, it makes the maintenance burden lighter, as upstream Git also targets mainly GCC.
  • GNU Make.
  • Perl. Still required for a couple of Git components (see the output of cd /git && git ls-files \*.perl), most notably git svn.
  • Tcl/Tk, a scripting language making it easy to implement cross-platform graphical user interfaces. We need this for gitk and git gui.
  • cURL, a library implementing HTTP and FTP transport.
  • many more libraries.
  • some Unix programs required by the shell scripts in Git.

The relationship between msysGit and Git for Windows

Git for Windows is the software package that installs a minimal environment to run Git on Windows. It comes with a Bash (a Unix-type shell), with a Perl interpreter and with the Git executable and its dependencies.

On the other hand, msysGit is the software package installing the build environment that can build Git for Windows. The easiest way is to install it via the net installer.

The difference between MSys and MinGW

The MinGW project's goal is to provide a way to compile native Windows binaries with no POSIX layer using the GNU C Compiler.

However, at least the Bash needs a POSIX layer (most notably due to the absence of the fork() call on Windows). Therefore, MSys (the minimal system) is thrown in, offering the minimal system necessary to offer Bash (and Perl) functionality on Windows.

Consequently, MSys ships with a POSIX layer (based on an old version of Cygwin) that is only used by the Bash and Perl, but not by anything compiled within that environment.

Further information

For more information and documentation, please have a look and enhance our Wiki.

For code contributions and discussions, please see our mailing list.

git's People

Contributors

artagnon avatar avar avatar chriscool avatar drafnel avatar dscho avatar felipec avatar gitster avatar hvoigt avatar j6t avatar jnareb avatar jrn avatar kblees avatar kusma avatar mhagger avatar moy avatar npitre avatar pasky avatar patthoyts avatar paulusmack avatar pclouds avatar peff avatar raalkml avatar rscharfe avatar spearce avatar sprohaska avatar srabbelier avatar sschuberth avatar torvalds avatar trast avatar tronical avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

git's Issues

Successful commands returning non-zero error code

Several commands that I've used (namely git describe and git remote -v) are returning non-zero codes at completion even though their output is correct. My scripts started crashing as soon as I upgraded from 1.7.10.

Feature Request: grep -o

Upgrade grep to provide the very conveniant -o option

o, --only-matching
Show only the part of a matching line that matches PATTERN.

vim/gvim Better syntax color highlighting

Color highlighting is supported in gVim, a standalone port of vim for Windows. Could we improve syntax highlighting in msysgit vim? It's as easy as copying over the syntax/ directory from a gVim installation into the msysgit vim directory, so providing better syntax highlighting by default in fresh msysgit installations should be easy. :) I've set mine to molokai.

http://superuser.com/questions/213295/enable-syntax-highlighting-on-msysgits-version-of-vim/409764#409764

bash completion of branch for 'git pull origin <branch>' jumps to 'Enter passphrase for key ...:'

note: This issue was originally opened in msysgit/msysgit, issue #60, but was closed as not "Windows specific issue. Please report upstream instead." Not sure if this is upstream enough, maybe I need to post in git/git. I've meant to try this in Linux/Mac. I have seem some patches online for git that seem related, but not exactly the same.

current: type git pull origin <letters> then hit tab, and Enter passphrase for key ...: is returned, on the same line, awaiting your .ssh passphrase. Also occurs for git fetch origin <letters>, but not for git push origin <letters>. Also doesn't happen for any other remote not named origin.

expected: If <letters> is the beginning of a branch then the branch should be auto-completed.

examples:

When <tab> is pressed after mas expect master to auto-complete, but instead it asks for .ssh key passphrase.

mikofski@myWindowsBox ~/My Documents/development/myProject (master)
$ git pull origin mas<tab>Enter passphrase for key '/c/Documents and Settings/mmikofski/.ssh/id_rsa':

Ditto for fetch.

mikofski@myWindowsBox ~/My Documents/development/myProject (master)
$ git fetch origin mas<tab>Enter passphrase for key '/c/Documents and Settings/mmikofski/.ssh/id_rsa':

push works fine

mikofski@myWindowsBox ~/My Documents/development/myProject (master)
$ git push origin mas<tab>ter

as does any other remote not named origin.

mikofski@myWindowsBox ~/My Documents/development/myProject (master)
$ git fetch local mas<tab>ter

msysgit version: Git-1.7.11-preview20120710
git version: 1.7.11.msysgit.1
OS: windows xp sp3 (x86)

I would not say this is critical as bash completion is a bit of a luxury. I looked through .bash_completion only briefly, but if I have time I will take a more extended look ...

Invalid icon path on Windows x64

The icons for three files appear to point to %ProgramFiles%\Git\etc\git.ico instead of %ProgramFiles(x86)%\Git\etc\git.ico on a 64-bit Windows machine. When opening any of these shortcut file properties and choosing Change Icon..., an error message appears saying %ProgramFiles%\Git\etc\git.ico cannot be found.

  • C:\Program Files (x86)\Git\Git Bash.lnk
  • C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Git\Git Bash.lnk
  • C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Git\Git GUI.lnk

(Creating issue from mailing list discussion at https://groups.google.com/forum/#!msg/msysgit/ETrl3JX6W7M/3dzUz_fybv4J)

Long file names (length > 260) should have special prefix

...what i hate about java developers - is their love for redundant prefixes in every subfolder.

I thought it might be due to TortoiseGIT, yet the console git did me the same.

I thought my T-Git log would remain in clipboard, silly me.

Okay, i was cloning https://github.com/xwiki/xwiki-platform into c:\XWiki.src\xwiki-platform
It downloaded the pack checked delta's and then started checking out.
It then spitted one error that it cannot create file.
It then continued and finally said it is 100% okay.

To me it seems very strange - at elast one error happened, at least one file was not checked out, yet git reports cloning success. Maybe it is right, dunno, but looks strange.

I looked manually and yes, there was some file and some folder missed,

And git.exe could do northing about that.
See http://pastebin.ca/2172286

The problem is those redundant pathnames are crossing 260 length boundary - see http://jsfiddle.net/eaukk/

To access longer pathnames one should use special prefix and Unicode-aware version of function.
See http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath

open temporary files like temporary

commands like "commit -F filename" are to read once a temporary file to fetch once a data chunk and forget of that file forever.

However the sharing mode for that file seem to be incorrect.
I seem to see that file is opened with read-write mode.

// SysInternals Process Montor:
// Desired Access: Generic Read, Disposition: Open,
// Options: Synchronous IO Non-Alert, Non-Directory File,
// Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult:
Opened

May i suggest to change it ?

FILE_SHARE_WRITE seems wrong here. If some parallel process would modify the
file while Git was reading it. it would be broken message.
FILE_SHARE_DELETE is lacking, that would allow to make temporary file, auto-
deleted by OS after close ( FILE_FLAG_DELETE_ON_CLOSE )

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858.aspx


When calling Git from my app, I'd like to create that file with temporary semantics
( FILE_FLAG_DELETE_ON_CLOSE | FILE_ATTRIBUTE_TEMPORARY |
FILE_FLAG_SEQUENTIAL_SCAN) and keep it open until git exits, then just to close
it.

This approach is not possible, for Git opens the file with quite different access mode and share matrix.

http://comments.gmane.org/gmane.comp.version-control.msysgit/16544

Git-SVN: GIT_ASKPASS is buggy

When you use GIT_ASKPASS to enter passwords, it never works because function _read_password from Prompt.pm is buggy. Indeed, this line is supposed to remove \r\n:

$password =~ s/[\012\015]//; # \n\r

But a 'g' is missing so \r\n is never removed. The correct line is

$password =~ s/[\012\015]//g; # \n\r

The issue can be reproduced using git-gui--askpass.

build failed when installing msysGit-1.8.1.2

steps followed

1.system: Windows 7, Service Pack 1, Intel Core Duo CPU

2.installed TortoiseGit 1.8.2.0 and Cygwin

3.downloaded msysGit-fullinstall-1.8.1.2-preview20130201.exe ran program

result:


Building and Installing Git

GIT_VERSION = 1.8.1.2
* new build flags
CC credential-store.o
* new link flags
CC abspath.o
CC advice.o
CC alias.o
CC alloc.o
CC archive.o
CC archive-tar.o
CC archive-zip.o
CC argv-array.o
* new prefix flags
CC attr.o
CC base85.o
CC bisect.o
CC blob.o
CC branch.o
CC bulk-checkin.o
CC bundle.o
CC cache-tree.o
CC color.o
CC column.o
CC combine-diff.o
CC commit.o
CC compat/obstack.o
CC compat/terminal.o
CC config.o
CC connect.o
CC connected.o
CC convert.o
CC copy.o
CC credential.o
CC csum-file.o
CC ctype.o
CC date.o
CC decorate.o
CC diffcore-break.o
CC diffcore-delta.o
CC diffcore-order.o
CC diffcore-pickaxe.o
CC diffcore-rename.o
CC diff-delta.o
CC diff-lib.o
CC diff-no-index.o
CC diff.o
CC dir.o
CC editor.o
CC entry.o
CC environment.o
CC exec_cmd.o
CC fetch-pack.o
CC fsck.o
CC gettext.o
CC gpg-interface.o
CC graph.o
CC grep.o
CC hash.o
GEN common-cmds.h
CC help.o
CC hex.o
CC ident.o
CC kwset.o
CC levenshtein.o
CC list-objects.o
CC ll-merge.o
CC lockfile.o
CC log-tree.o
CC mailmap.o
CC match-trees.o
CC merge.o
CC merge-file.o
CC merge-recursive.o
CC mergesort.o
CC name-hash.o
CC notes.o
CC notes-cache.o
CC notes-merge.o
CC object.o
CC pack-check.o
CC pack-refs.o
CC pack-revindex.o
CC pack-write.o
CC pager.o
CC parse-options.o
CC parse-options-cb.o
CC patch-delta.o
CC patch-ids.o
CC path.o
CC pkt-line.o
CC preload-index.o
CC pretty.o
CC progress.o
CC prompt.o
CC quote.o
CC reachable.o
CC read-cache.o
CC reflog-walk.o
CC refs.o
CC remote.o
CC replace_object.o
CC rerere.o
CC resolve-undo.o
CC revision.o
CC run-command.o
CC send-pack.o
CC sequencer.o
CC server-info.o
CC setup.o
CC sha1-array.o
CC sha1-lookup.o
CC sha1_file.o
CC sha1_name.o
CC shallow.o
CC sideband.o
CC sigchain.o
CC strbuf.o
CC streaming.o
CC string-list.o
CC submodule.o
CC symlinks.o
CC tag.o
CC trace.o
CC transport.o
CC transport-helper.o
CC tree-diff.o
CC tree.o
CC tree-walk.o
CC unpack-trees.o
CC url.o
CC usage.o
CC userdiff.o
CC utf8.o
CC varint.o
CC version.o
CC walker.o
CC wrapper.o
CC write_or_die.o
CC ws.o
CC wt-status.o
CC xdiff-interface.o
CC zlib.o
CC compat/inet_ntop.o
CC compat/inet_pton.o
CC block-sha1/sha1.o
CC thread-utils.o
CC compat/mingw.o
CC compat/winansi.o
CC compat/win32/pthread.o
CC compat/win32/syslog.o
CC compat/win32/dirent.o
CC compat/basename.o
CC compat/poll/poll.o
CC compat/strcasestr.o
CC compat/strlcpy.o
CC compat/strtoumax.o
CC compat/strtoimax.o
CC compat/strtok_r.o
CC compat/fnmatch/fnmatch.o
CC compat/setenv.o
CC compat/mkdtemp.o
CC compat/win32mmap.o
CC compat/pread.o
CC compat/memmem.o
CC compat/qsort.o
CC compat/regex/regex.o
CC compat/nedmalloc/nedmalloc.o
AR libgit.a
CC xdiff/xdiffi.o
CC xdiff/xprepare.o
CC xdiff/xutils.o
CC xdiff/xemit.o
CC xdiff/xmerge.o
CC xdiff/xpatience.o
CC xdiff/xhistogram.o
AR xdiff/lib.a
RC git.res
C:\msysgit\mingw\bin\windres.exe: can't popen `C:\msysgit\mingw\bin\gcc -E -xc -
DRC_INVOKED -DMAJOR=1 -DMINOR=8 -DPATCH=1 -DGIT_VERSION="1.8.1.2" git.rc': No
error
make: *** [git.res] Error 1


Hello, dear Git developer.

This is a minimal MSYS environment to work on Git.

Your build failed... Please fix it, and give feedback on the Git list.

Welcome to msysGit

Run 'git help git' to display the help index.
Run 'git help ' to display help for specific commands.
Run '/share/msysGit/add-shortcut.tcl' to add a shortcut to msysGit.

cloning into a target that is an empty folder is not allowed(but it should?)

Git for Windows
git-gui version 0.17.GITGUI
git version 1.8.0.msysgit.0

Tcl/Tk version 8.5.11

Hi.
I start Git Gui, click the Clone Existing Repository link
I enter a source location then I browse to a folder and there I create a new folder by clicking Make New Folder(in the browse window) click ok, I notice the Target Directory specifies the path including this new folder (this is good).
But now I click Clone button and I get an error messagebox(with title "error") saying
Location <targetdirhere> already exists.

If I just simply go and delete it, it works. But since it's already empty, I figure maybe gitgui should check if it's empty before showing the error message and only show it if it's not empty. Otherwise you simply cannot select a new folder other than simply selecting existing via Browse button and then appending a /newfolderhere in the Target Directory edit box, before pressing Clone.

Thanks for your consideration.

Portable version: problems with ssh on simultaneous 'remote update'.

One of the processes of ssh.exe sometimes outputs

Could not create directory 'c/users/yoprst/.ssh'.

Then asks permission to add new host to known_hosts and fails with doing it.
HOME environment variable is set to c:\Users\yoprst.

By using Process Monitor I found that this process of ssh.exe first requests file

C:\Projects\test_msysgit\jquery\c\Projects\test_msysgit\jquery\c\users\yoprst\.ssh\config

Steps to reproduce:

  1. Clone 2+ git repos with ssh remotes, for example:

    git clone [email protected]:msysgit/git.git
    git clone [email protected]:jquery/jquery.git
    git clone [email protected]:twitter/bootstrap.git

  2. Run batch file with contents:

start /Dgit C:\Windows\system32\cmd.exe /c C:\Users\yoprst\Downloads\PortableGit-1.8.1.2-preview20130201\bin\git.exe remote update
start /Dbootstrap C:\Windows\system32\cmd.exe /c C:\Users\yoprst\Downloads\PortableGit-1.8.1.2-preview20130201\bin\git.exe remote update
start /Djquery C:\Windows\system32\cmd.exe /c C:\Users\yoprst\Downloads\PortableGit-1.8.1.2-preview20130201\bin\git.exe remote update

I also tried cmd\git.exe. No difference.
It is reproduced at least on 1.8.1.2-preview20130201 and 1.8.0-preview20121022.
It is not reproduced on installed msysgit.

update to 1.7.12

Hi guys. I was wondering if/when do you plan to release 1.7.12.

No pressure, just curiosity.

TIA.

Checkout silently fails on error

What steps will reproduce the problem?

  1. Have repo with two branches
  2. Do some changes without committing
  3. Try to checkout to other branch

What is the expected output? What do you see instead?
Expect a warning with error description "error: Your local changes to the following files would be overwritten by checkout" or at least a message that action failed. Instead, we have a silent fail.

What version of msysgit are you using? On what operating system?
git version 1.7.11.msysgit.1 with TortoiseGit 1.7.13.0

git bash shell extensions use system32/cmd and wscript

If you enable "git bash here" during installation of msysgit on (at least one) XP64, then right click on a folder and select "git bash here" a window opens with the following traceback:

C:\Program Files (x86)\Git\bin\sh.exe: *** fork: can't reserve memory for stack
0x490000 - 0x690000, Win32 error 0
      0 [main] sh.exe" 4292 sync_with_child: child 4308(0xE0) died before initia
lization with status code 0x1
    322 [main] sh.exe" 4292 sync_with_child: *** child state waiting for longjmp

sh.exe": fork: Resource temporarily unavailable
sh.exe"-3.1$

However if you use the desktop icon or the start menu icon to start git bash, it works perfectly.

Welcome to Git (version 1.7.10-preview20120409)


Run 'git help git' to display the help index.
Run 'git help <command>' to display help for specific commands.

myname@MYCOMPUTER ~
$

Also "git bash here" shell extension works fine on 32-bit windows XPSP3.

msysgit version 1.7.10-preview20120409
windows XP x64 Edition Version 2003 SP2

These are the shell keys:

{My Computer\HKEY_CLASSES_ROOT\Directory\shell\git_shell\command:
    {Name:(Defualt),
     Type:REG_SZ,
     Data:wscript "C:\Program Files (x86)\Git\Git Bash.vbs" "%1"}}
{My Computer\HKEY_CLASSES_ROOT\Wow6432Node\Directory\shell\git_shell\command:
    {Name:(Defualt),
     Type:REG_SZ,
     Data:wscript "C:\Program Files (x86)\Git\Git Bash.vbs" "%1"}}
{My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\git_shell\command:
    {Name:(Defualt),
     Type:REG_SZ,
     Data:wscript "C:\Program Files (x86)\Git\Git Bash.vbs" "%1"}}
{My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\Directory\shell\git_shell\command:
    {Name:(Defualt),
     Type:REG_SZ,
     Data:wscript "C:\Program Files (x86)\Git\Git Bash.vbs" "%1"}}
{My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\\Directory\shell\git_shell\command:
    {Name:(Defualt),
     Type:REG_SZ,
     Data:wscript "C:\Program Files (x86)\Git\Git Bash.vbs" "%1"}}

The problem seems to stem from the fact that the git bash.vbs runs using "C\WINDOWS\system32\wscript.exe" instead of "C\WINDOWS\sysWoW64\wscript.exe" which ironically runs the 32bit version

The same goes for "open" for file-types with the extension .sh, which use the system32 version of cmd instead of the syswow64 version of cmd.

I was able to run the vbs just by changing the opens with to the syswow64 version of wscript, but the shell extension still doesn't work.

Oddly enough, it works on (at least one) 64 bit version of Windows 7.

PortableGit: git-bash: Please document location of drives

Perhaps add a line added to README.portable. something like:

If you are comfortable with a Unix-like shell, just launch 'git-bash.bat'.
(c: is /c/)

The drives themselves are not obvious.
ls /
does not show /c /d etc.
The mount command doesn't exist, so that doesn't tell you either.

git help command broken in 1.7.11

The git help and git --help mechanism is broken in Git 1.7.11

C:\Program Files (x86)\Git\libexec>git help clone
warning: failed to exec 'man': No such file or directory
fatal: no man viewer handled the request

The underlying web-page launcher is ok - for some reason we are looking for 'man' instead of web--browse to show the help.

Unnecessary files?

I'm using the portable version, and I was wondering if executables like antiword.exe or rxvt.exe are really necessary. If not, it's possible there are other unused one that got bundled along.

allow ssh.exe instead of plink.exe

When choosing to use PuTTY instead of the integrated ssh.exe the installer asks you to provide the path to plink.exe. However in my case I've renamed plink.exe to ssh.exe, so I can use Mercurial and other apps which require SSH support. Unfortunately, the msysgit installer doesn't recognize ssh.exe as a valid name. Could you please allow to either select any file or at least also ssh.exe? Thanks.

Strange stack errors with Cyrillic unversioned files

[Git 1.7.11.msysgit.1 (from 2012-07-10); Windows XP SP3]

  1. Make any file with Cyrillic name in working folder.
  2. Add this file to ignore list.
  3. Try to push, gc or something with stash.

Commands returns an error and new file sh.exe.stackdump appears inside working folder. It's seems to be work better with filtering files by name, that by extensions, but not sure. I tried different .gitignore encodings.

With English filenames all work fine.

compat/terminal.c:83: error: implicit declaration of function '_getch'

If I try to compile the latest devel, I get the following error:

    CC compat/terminal.o
cc1.exe: warnings being treated as errors
compat/terminal.c: In function 'git_terminal_prompt':
compat/terminal.c:83: error: implicit declaration of function '_getch'
make: *** [compat/terminal.o] Error 1

The problem seems to have been caused by 3006a55 (it did introduce _getch() to compat/terminal.c), if I remove that commit, git compiles fine.

GUI Editor (for rebase)

git rebase -i starts an editor and waits closing. But for GUI editors such behavior is wrong.

Need to run the script for git rebase - continue.

$ git config --global core.editor "\"c:\Program Files (x86)\Notepad++\notepad++.exe\""
$ git rebase -i HEAD^1
Successfully rebased and updated refs/heads/b2.

Include and use mintty by default

mintty is a nice terminal emulator for Cygwin and MSYS. I think using mintty in "Git Bash" instead of cmd.exe would be a reasonable choice since it is a much better suited for Unix shells than cmd.exe. Cygwin uses it as default terminal emulator for some time and they don't seem to have any major issues with it, so i don't think it would be problematic for MSYS also.

Host binaries outside Google Code

With this official announcement, http://google-opensource.blogspot.fr/2013/05/a-change-to-google-code-download-service.html, Google Code will not host binaries in future.

Starting today, existing projects that do not have any downloads and all new projects will not have the ability to create downloads.
Existing projects with downloads will see no visible changes until January 14, 2014 and will no longer have the ability to create new downloads starting on January 15, 2014.
All existing downloads in these projects will continue to be accessible for the foreseeable future.

New msysGit / Git for Windows Logo

I'm a big fan of the Git for Windows project, so when I realized that the project is still using Git's older logos, I decided to try my hand at updating the logo:

gwindowsem

gwindowsmsysem

As you can see, it's a bit more Windows friendly!

The original logo is licensed under the Creative Commons Attribution License, so it allows modification.

I started with an SVG of the original logo and completely left the "git" text alone while also being very careful to keep my modifications of the orange diamond to the exact same dimensions. I even found the original font used for the "git" text (Adelle bold) and added the "msys" title.

Hope you guys like it! If there's any interest in updating the project to use this new logo, here are the SVGs:

No subtitle
With msys subtitle
With MinGW subtitle

line ending conventions during installation

I just installed the Git-1.8.0-preview20121022.exe

I selected during the installation the "Checkout as-it-is".. aka, core.autocrlf is set to input
Screenshot http://imgur.com/kblNS

When I do right click on a folder -> "Git Init Here" it will create this .git/config file:

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly

I expected to see autocrlf = input there
Also I see that there is no way to change it in the GUI -> Edit -> Options...

I know how to do it manually.. but the point is that there should be a GUI to change these settings.

Related to this.. (but not related at the same time) also tried Tortoise Git last version, and in the settings there is a autocrfl checkbox ("on/off")... but there is no way to set it as "input".

ssh key bad permissions with Permissions 0644 for '/c/Documents and Settings/Administrator/.ssh/id_rsa'

$ ssh -T [email protected]
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/c/Documents and Settings/Administrator/.ssh/id_rsa' are t
oo open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /c/Documents and Settings/Administrator/.ssh/id_rsa

Permission denied (publickey).

Git GUI dialog non-standard

IMHO, the "Quit" and "Clone" buttons should be in the reverse order:

gitguidialog

"Quit" is analogous to "Cancel" which is by convention the rightmost button. My muscle memory has caused me to hit "Quit" more than once when cloning a repository. I know its a small issue but still...

Huge bloat in \libexec\git-core\? (portable version)

The \libexec\git-core\ directory is over 150MB, and most megabyte-sized files there differ by only 2 bytes; for instance git-fsck.exe vs. git-show.exe.

I suppose there's a reason for this. Is there also a smaller way to package these executables?

Update ssh.exe? It doesn't read .ssh\config

C:\>ssh.exe -v              
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007

I don't know yet if the old ssh.exe is the problem, but I can't seem to find a way to have it read a configuration file. ssh.exe lives in c:\utils\git\bin, and it successfully reads/writes to C:\Utils\Git\.ssh\known_hosts (so if I delete that file, there's no warning the second time I run ssh -vT [email protected]. Yet that command never outputs "Reading configuration data", even though I do have C:\Utils\Git\.ssh\config - same directory as as known_hosts.

Backspace key inserts ~ in Git Bash instead of backspacing

Backspace doesn't work correctly in Git Bash. It insterts a tilde (~) instead of deleting the previous character.

System:

$ specs bash git os
Specs:

specs 0.2
https://github.com/mcandre/specs#readme

bash --version
GNU bash, version 3.1.0(1)-release (i686-pc-msys)
Copyright (C) 2005 Free Software Foundation, Inc.

git --version
git version 1.8.0.msysgit.0

systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name:                   Microsoft Windows XP Professional
OS Version:                5.1.2600 Service Pack 3 Build 2600

Provide a working out of the box instaweb

Related to issue #9 and in particular comment #9 (comment) . It would be great if msysgit supported (out of the box) an implementation of the instaweb command that worked without external (where external is, external to the provided git installation) dependencies.

There are it seems various instructions on the web as to how one might set about achieving this, for example ( http://asimilatorul.com/index.php/2009/10/12/git-instaweb-using-mongoose-and-msysgit/ ) however looking at the documentation for instaweb it looks as though we should just provide a msys-happy install of lighthttpd, for example: https://github.com/mkottman/lighttpd-1.5-mingw looks like a potential candidate for inclusion.

I could probably take a look at this, but it may turn out to be beyond my means (hopefully not though.)

warning: LF will be replaced by CRLF in cli.rb

My .gitattributes contains

* text=auto

With cygwin git, everything is fine as expected, but in msysgit, after I changed the file cli.rb to LF using dos2unix, I got the following warning

warning: LF will be replaced by CRLF in cli.rb

Why this? shouldn't we always have lf as the normalized eol in msysgit?

$ git --version
git version 1.7.11.msysgit.0

add support for gitweb integration with gerrit without apache

Problem

In gerrit review system, for demo purpose, I want to integrate gitweb without apache in windows for simple.

While it missed the CGI perl module and the gitweb.cgi is not executable from gerrit.

Solution

  1. add CGI perl lib module inside
  2. put the wrapped script gitweb.bat besides gitweb.cgi

see the solution in my blog integrate gitweb with gerrit without apache server in windows

Reference

It is reported as issue in gerrit as well, see http://code.google.com/p/gerrit/issues/detail?id=1167, but it is better if it can be fixed here

troubles when using GIT_SSH along with multiple GIT applications

Since msysgit is using the GIT_SSH environment variable to locate the ssh client which it should use, it seems impossible to define different ssh clients for different applications which use GIT.

I (and I suppose i'm not the only one while GIT grows in popularity) have a strong interest in choosing different ssh clients depending on the application which runs GIT. So far applications can not force such a behavior since besides GIT_SSH there seems no way to force GIT to use a specific SSH client at GIT-startup / runtime.

The Issue is: when running multiple applications which all use GIT but require to use a specific ssh client atleast one of them will fail to run.
It would be great, if there would be a attribute variable to start git with a specific ssh client instead of allways using the one specified in GIT_SSH.

.gitattributes text attribute does not work properly on Windows if autocrlf is not true

(Sorry for the crosspost, but I wasn't sure where to file this)

See the StackOverflow discussion .gitattributes with core.autocrlf unset.

On Windows, if core.autocrlf is not set to true, the core.eol configuration is not handled properly when normalizing line endings of files with the text attribute set. If core.eol is unset or set to native, the working directory is normalized to LF, not CRLF.

If core.eol is explicitly set to CRLF, or if core.autocrlf is set to true, things work as expected.

git diff --raw shows wrong results

Hi, I'm noticing a weird problem when running git diff --raw. When I call 'touch' on a file to change its modified time, git diff --raw shows the file although it shouldn't. git status doesn't show the file, and it resets the behavior of git diff --raw. Here's a run that demonstrates this:

C:\>git --version
git version 1.8.3.msysgit.0

C:\>git init test
Initialized empty Git repository in C:/test/.git/

C:\>cd test

C:\test>echo hello > temp.txt

C:\test>git add temp.txt

C:\test>git commit -m "test commit"
[master (root-commit) 3a13028] test commit
 1 file changed, 1 insertion(+)
 create mode 100644 temp.txt

C:\test>git diff --raw

C:\test>

So far was the setup. Now touch and git diff --raw

C:\test>touch temp.txt

C:\test>git diff --raw
:100644 100644 f2aa86d... 0000000... M  temp.txt

Here's the problem. On unix systems, the file will not show in the diff...

git status returns that there are no changes, and also resets this, so the next call becomes ok!

C:\test>git status
# On branch master
nothing to commit, working directory clean

C:\test>git diff --raw

C:\test>

Strange stack errors with Cyrillic unversioned files

[Git 1.7.11.msysgit.1 (from 2012-07-10); Windows XP SP3]

  1. Make any file with Cyrillic name in working folder.
  2. Add this file to ignore list.
  3. Try to push, gc or something with stash.

Commands returns an error and new file sh.exe.stackdump appears inside working folder. It's seems to be work better with filtering files by name, that by extensions, but not sure. I tried different .gitignore encodings.

With English filenames all work fine.

add gitk.bat for windows

Hi,

please add gitk.bat for windows, so it could be called in cmd.exe/SublimeGit/Others.

here is a gitk.bat proposal


@%~dp0sh.exe %~dpn0 %*

thanks,
Phus

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.