{"thread":{"id":"3021","subject":"Re: undoing changes with git-checkout -f","startedAt":"2006-01-09T21:16:52Z","lastAt":"2006-01-10T17:32:20Z","messageCount":14,"participants":["lamikr","Joel Becker","Junio C Hamano","Johannes Schindelin","Alex Riesen"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"15374","messageId":"43C2D2C4.2010904@cc.jyu.fi","threadId":"3021","inReplyTo":null,"subject":"undoing changes with git-checkout -f","fromName":"lamikr","fromEmail":"lamikr@cc.jyu.fi","sentAt":"2006-01-09T21:16:52Z","receivedAt":"2006-01-09T21:16:52Z","isPatch":false,"sender":{"key":"lamikr@cc.jyu.fi","avatar":null},"body":"Hi\n\nCan somebody tell have I understood git-checkout -f wrong as following\ndoes not work as I thought\n1) I clone git repo by using command\n\n    git-clone rsync://source.mvista.com/git/linux-omap-2.6.git\nlinux-omap-2.6\n\n2) I go to cloned repo and create there a new file\n    cd linux-omap-2.6\n    echo \"test\" > 1.txt\n\n3) I want to undo the creation of 1.txt by using command\n    git-checkout -f\n\nbut for some reason the 1.txt is still displayed in the root of\nlinux-omap-2.6 directory. (I have also tried \"git-reset --hard\" but\nseems to have same effect)\nWhat am I doing wrong?\n\nMika\n"},{"id":"15377","messageId":"7vmzi5hy69.fsf@assigned-by-dhcp.cox.net","threadId":"3021","inReplyTo":"43C2D2C4.2010904@cc.jyu.fi","subject":"Re: undoing changes with git-checkout -f","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-01-09T21:46:38Z","receivedAt":"2006-01-09T21:46:38Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"lamikr <lamikr@cc.jyu.fi> writes:\n\n> 1) I clone git repo by using command\n>\n>     git-clone rsync://source.mvista.com/git/linux-omap-2.6.git\n> linux-omap-2.6\n\nPlease do not use rsync:// transport if possible (mvista might\nonly pubilsh via rsync:// and not git://, so it may not be your\nfault).\n\n> 2) I go to cloned repo and create there a new file\n>     cd linux-omap-2.6\n>     echo \"test\" > 1.txt\n>\n> 3) I want to undo the creation of 1.txt by using command\n>     git-checkout -f\n>\n> but for some reason the 1.txt is still displayed in the root of\n> linux-omap-2.6 directory. (I have also tried \"git-reset --hard\" but\n> seems to have same effect)\n> What am I doing wrong?\n\nNothing.  After the second step, git does not know anything\nabout 1.txt; if it is a part of something you wanted to\neventually commit, or it is some notes you took while perusing\nthe source and is precious even when you switch branches (even\nthough you would not commit it as part of the project) , so it\ndoes not touch it.  After running \"make\", \"checkout -f\" does not\ndo \"make clean\" for you to remove *.o files either, for exactly\nthe same reason.\n\n\"git status\" would tell you the file is \"untracked\".\n\nIf you did something like this:\n\n\t$ edit 1.txt\n        $ git add 1.txt\n        $ git reset --hard\n\n\"git reset --hard\" would remove it, while \"git checkout -f\"\nwould leave the file behind.\n\nBTW, please do not set Reply-To: (or Mail-Followup-To: for that\nmatter) to the list.  When I (or somebody else) want to reply\nto you, especially in private, your Reply-To: header forces me\nto manually rewrite the To: header MUA prepares for me.\n\nI know why you do it --- you are on the list and otherwise you\nwould get duplicate messages, one from me directly and another\nfrom the list.  I've seen other people do it, but IMNSHO it is a\nbad practice.  Filter them on your end, and do not put extra\nburden to others, please.  The only case mucking with the\naddressee headers may be acceptable is to remove yourself from\nCC: list when a list you are on is on the CC: list.\n"},{"id":"14365","messageId":"43C2E566.2060006@cc.jyu.fi","threadId":"3021","inReplyTo":"Pine.LNX.4.64.0601091321390.5588@g5.osdl.org","subject":"Re: undoing changes with git-checkout -f","fromName":"lamikr","fromEmail":"lamikr@cc.jyu.fi","sentAt":"2006-01-09T22:36:22Z","receivedAt":"2006-01-09T22:36:22Z","isPatch":false,"sender":{"key":"lamikr@cc.jyu.fi","avatar":null},"body":"Linus Torvalds wrote:\n\n>You should realize that git _does_not_know_ about your file. You never \n>even told git about it. So git won't ever evenlook at it, much less delete \n>it.\n>\n>So when you do a \"git checkout -f\", what that does is to rewrite all the \n>files that git KNOWS about. Any files git doesn't know about will not ever \n>be touched. Your \"1.txt\" file might as well be an object file, for all git \n>knows. And git won't remove your object files or any other files that it \n>doesn't know.\n>\n>(Now, in all fairness, even if you had done \"git add\", I don't think git \n>will remove the file. If you committed the file and then checked out the \n>previous version, _then_ it would remove the committed file).\n>  \n>\nNow that you say it, I got it, thanks. I expected earlier that git would\nperform also the\nremove of non-added files as other commands like \"git-commit\" are anyway\naware\nif you have files in your working dir that have not yet added.\n\n>If what you want to do is to clean the git directory of all files that git \n>doesn't know about, you can do that with\n>\n>\tgit-ls-files -z --others | xargs -0 rm --\n>  \n>\nThanks for the tip. I have now added alias git-reset-ff='git-ls-files -z\n--others | xargs -0 rm --'\nAnd git-reset-fff (forte fortissimo) would probably blow the whole hd\naway :-)\n\nMika\n"},{"id":"14367","messageId":"43C2E937.4060508@cc.jyu.fi","threadId":"3021","inReplyTo":"7vmzi5hy69.fsf@assigned-by-dhcp.cox.net","subject":"Re: undoing changes with git-checkout -f","fromName":"lamikr","fromEmail":"lamikr@cc.jyu.fi","sentAt":"2006-01-09T22:52:39Z","receivedAt":"2006-01-09T22:52:39Z","isPatch":false,"sender":{"key":"lamikr@cc.jyu.fi","avatar":null},"body":"Junio C Hamano wrote:\n\n>lamikr <lamikr@cc.jyu.fi> writes:\n>\n>  \n>\n>>1) I clone git repo by using command\n>>\n>>    git-clone rsync://source.mvista.com/git/linux-omap-2.6.git\n>>linux-omap-2.6\n>>    \n>>\n>\n>Please do not use rsync:// transport if possible (mvista might\n>only pubilsh via rsync:// and not git://, so it may not be your fault).\n>  \n>\nOk, I will send a message to maintainer. I was just pasting the address\nfrom their instructions. (They were using cogito on top of git, but I\nwant to learn to use pure git commands first)\n\n>Nothing.  After the second step, git does not know anything\n>about 1.txt; if it is a part of something you wanted to\n>eventually commit, or it is some notes you took while perusing\n>the source and is precious even when you switch branches (even\n>though you would not commit it as part of the project) , so it\n>does not touch it.  After running \"make\", \"checkout -f\" does not\n>do \"make clean\" for you to remove *.o files either, for exactly\n>the same reason.\n>\n>\"git status\" would tell you the file is \"untracked\".\n>\n>If you did something like this:\n>\n>\t$ edit 1.txt\n>        $ git add 1.txt\n>        $ git reset --hard\n>\n>\"git reset --hard\" would remove it, while \"git checkout -f\"\n>would leave the file behind.\n>  \n>\nOk, so this describes the power difference between \"checkout -f\"\nand \"git-reset --hard\" pretty well.\n\n>BTW, please do not set Reply-To: (or Mail-Followup-To: for that\n>matter) to the list.  When I (or somebody else) want to reply\n>to you, especially in private, your Reply-To: header forces me\n>to manually rewrite the To: header MUA prepares for me.\n>\n>I know why you do it --- you are on the list and otherwise you\n>would get duplicate messages, one from me directly and another\n>from the list.  I've seen other people do it, but IMNSHO it is a\n>bad practice.  Filter them on your end, and do not put extra\n>burden to others, please.  The only case mucking with the\n>addressee headers may be acceptable is to remove yourself from\n>CC: list when a list you are on is on the CC: list.\n>  \n>\nYes, I am a victim of graphical email reader aka \"thunderbird\".\nBut I will now remember to do this for vger mailing lists.\n\nA little off topic, but I just wish that http mail archive apps like the\none used in\nhttp://marc.theaimsgroup.com/?l=linux-kernel\ncould also offer possibility to filter duplicates away.\n\nMika\n"},{"id":"14392","messageId":"20060110045533.GO18439@ca-server1.us.oracle.com","threadId":"3021","inReplyTo":"7vmzi5hy69.fsf@assigned-by-dhcp.cox.net","subject":"Re: undoing changes with git-checkout -f","fromName":"Joel Becker","fromEmail":"joel.becker@oracle.com","sentAt":"2006-01-10T04:55:33Z","receivedAt":"2006-01-10T04:55:33Z","isPatch":false,"sender":{"key":"joel.becker@oracle.com","avatar":null},"body":"On Mon, Jan 09, 2006 at 01:46:38PM -0800, Junio C Hamano wrote:\n> Please do not use rsync:// transport if possible (mvista might\n> only pubilsh via rsync:// and not git://, so it may not be your\n> fault).\n\n\tCan we teach the git:// fetch program to use CONNECT over HTTP\nproxies?  rsync can do this, but git:// cannot, so firewalls that block\n9418 mean we use rsync://\n\tI'm mostly offline this week or I'd take a stab at it.\n\nJoel\n\n-- \n\n\"We will have to repent in this generation not merely for the\n vitriolic words and actions of the bad people, but for the \n appalling silence of the good people.\"\n\t- Rev. Dr. Martin Luther King, Jr.\n\nJoel Becker\nPrincipal Software Developer\nOracle\nE-mail: joel.becker@oracle.com\nPhone: (650) 506-8127\n"},{"id":"14394","messageId":"7vk6d8aaln.fsf@assigned-by-dhcp.cox.net","threadId":"3021","inReplyTo":"20060110045533.GO18439@ca-server1.us.oracle.com","subject":"Re: undoing changes with git-checkout -f","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-01-10T05:57:40Z","receivedAt":"2006-01-10T05:57:40Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Joel Becker <Joel.Becker@oracle.com> writes:\n\n> \tCan we teach the git:// fetch program to use CONNECT over HTTP\n> proxies?  rsync can do this, but git:// cannot, so firewalls that block\n> 9418 mean we use rsync://\n> \tI'm mostly offline this week or I'd take a stab at it.\n\nIt's been there for quite some time, although I never liked the\nway it interfaces with the outside world.\n\n\t$ cat .git/config\n        [core]\n                repositoryformatversion = 0\n                filemode = true\n                gitproxy = /usr/local/bin/tn-gw-nav-local\n\t$ cat /usr/local/bin/tn-gw-nav-local\n        #!/bin/sh\n\t# Use squid running at localhost\n        exec tn-gw-nav -H -h 127.0.0.1 -p 3128 \"$1\" \"$2\"\n\t$ grep SSL /etc/squid/squid.conf\n        acl SSL_ports 443 563 9418 # https snntp git\n        http_access deny CONNECT !SSL_ports\n\t$ git fetch --tags git://git.kernel.org/pub/scm/git/git.git/\n\nIt is a bit inconvenient that \"git clone\" wrapper cannot be used\non an existing repository, and without an existing repository\nyou cannot have .git/config. You could have the config file in\nyour site-wide template area, but admittably it is a bit\nawkward.\n"},{"id":"14395","messageId":"20060110063247.GP18439@ca-server1.us.oracle.com","threadId":"3021","inReplyTo":"7vk6d8aaln.fsf@assigned-by-dhcp.cox.net","subject":"Re: undoing changes with git-checkout -f","fromName":"Joel Becker","fromEmail":"joel.becker@oracle.com","sentAt":"2006-01-10T06:32:47Z","receivedAt":"2006-01-10T06:32:47Z","isPatch":false,"sender":{"key":"joel.becker@oracle.com","avatar":null},"body":"On Mon, Jan 09, 2006 at 09:57:40PM -0800, Junio C Hamano wrote:\n> Joel Becker <Joel.Becker@oracle.com> writes:\n> > \tCan we teach the git:// fetch program to use CONNECT over HTTP\n> > proxies?  rsync can do this, but git:// cannot, so firewalls that block\n> > 9418 mean we use rsync://\n> > \tI'm mostly offline this week or I'd take a stab at it.\n> \n> It's been there for quite some time, although I never liked the\n> way it interfaces with the outside world.\n> \n\n\tUgly snipped...\n\n> It is a bit inconvenient that \"git clone\" wrapper cannot be used\n> on an existing repository, and without an existing repository\n> you cannot have .git/config. You could have the config file in\n> your site-wide template area, but admittably it is a bit\n> awkward.\n\n\tHere's what I did.  I modified the usual\nssh-tunnel-over-SSL-CONNECT script to honor http_proxy.  I've attached\nit.  With this, I do as so:\n\n\t# cp git-tunnel.pl /usr/local/bin\n\t# export http_proxy=\"http://my-proxy.my.com:80/\"\n\t# GIT_PROXY_COMMAND=\"/usr/local/bin/git-tunnel.pl\" git clone git://git.kernel.org/pub/scm/... localsource\n\t# cd localsource\n\t# vi .git/config\n\t\t[core]\n\t\t\tgitproxy = /usr/local/bin/git-tunnel.pl\n\n\tThis is working for me.  I'd really rather have the tunneling\ncode be part of connect.c, and have core.proxymethod=external use the\ncurrent core.gitproxy method and core.proxymethod=http use $http_proxy.\n\tBut this will suffice for now :-)\n\nJoel\n\n-- \n\nLife's Little Instruction Book #198\n\n\t\"Feed a stranger's expired parking meter.\"\n\nJoel Becker\nPrincipal Software Developer\nOracle\nE-mail: joel.becker@oracle.com\nPhone: (650) 506-8127\n\n\n#!/usr/bin/perl\n#\n# git-tunnel.pl\t\n#\n# Usage: git-tunnel.pl ssl-proxy port destination_host port\n#\n# This script can be used by git as a \"core.gitproxy\" to \n# traverse a www-proxy/firewall that supports the http CONNECT \n# command described in\n# http://home.netscape.com/newsref/std/tunneling_ssl.html\n#\n# It uses the http_proxy (or HTTP_PROXY) variable to determine the\n# proxy to connect to.  Put the path to this script in the environment\n# variable GIT_PROXY_COMMAND, or better yet, insert the core.gitproxy\n# definition in .git/config.\n#\n#      .\n#      .\n#      [core]\n#          gitproxy = /path/to/git-tunnel.pl\n#      .\n#      .\n#\n# Written by Urban Kaveus <urban@statt.ericsson.se>\n# Modified to use http_proxy by Joel Becker <joel.becker@oracle.com>\n\nuse Socket;\n\n# Parse command line arguments\n\nif ( $#ARGV != 1 ) {\n    print STDERR \"Usage: $0 destination port\\n\";\n    print STDERR $#ARGV, \"\\n\";\n    exit(1);\n}\n\n$proxy_url = $ENV{'http_proxy'};\nif (!$proxy_url) {\n    $proxy_url = $ENV{'HTTP_PROXY'};\n}\n\n$proxyport = 80;\nif ($proxy_url =~ /^https?:\\/\\/([^:]+)\\/$/) {\n    $sslproxy = $1;\n} elsif ($proxy_url =~ /^https?:\\/\\/([^:]+):([1-9][0-9]*)\\/$/) {\n    $sslproxy = $1;\n    $proxyport = $2;\n} else {\n    print STDERR \"Invalid proxy specification: \\\"$proxy_url\\\"\\n\";\n    exit(1);\n}\n\n$destination = shift;\n$destport    = shift;\n\n# Set up network communication\n\n($protocol) = (getprotobyname(\"tcp\"))[2];\n($proxyip)  = (gethostbyname($sslproxy))[4];\n$localaddr  = pack('S n a4 x8', &AF_INET, 0, \"\\0\\0\\0\\0\");\n$proxyaddr  = pack('S n a4 x8', &AF_INET, $proxyport, $proxyip);\n\nsocket (PROXY, &AF_INET, &SOCK_STREAM, $protocol) or\n    die(\"Failed to create cocket\");\nbind (PROXY, $localaddr) or\n    die(\"Failed to bind socket\");\nconnect (PROXY, $proxyaddr) or\n    die(\"Failed to connect to $sslproxy port $proxyport\");\n\n# Force flushing of socket buffers\n\nselect (PROXY);  $| = 1; \nselect (STDOUT); $| = 1;\n\n# Send a \"CONNECT\" command to proxy:\n\nprint PROXY \"CONNECT $destination:$destport HTTP/1.1\\r\\n\\r\\n\";\n\n# Wait for HTTP status code, bail out if you don't get back a 2xx code.\n\n$_ = <PROXY>;\n($status) = (split())[1];\n\ndie(\"Received a bad status code \\\"$status\\\" from proxy server\") \n    if ( int($status/100) != 2 );\n\n# Skip through remaining part of MIME header\n\nwhile(<PROXY>) {\n    chomp;   # Strip <LF>\n    last if /^[\\r]*$/;\t\t# Empty line or a single <CR> left\n}\n\n# Start copying packets in both directions.\n\nif($child = fork) { # Parent process\n    while (sysread(STDIN,$_,4096)) {\n        print PROXY;\n    }\n    sleep 2;\n    kill(15,$child) if $child;\n}\n\nelse { # Child process\n    while (sysread(PROXY,$_,4096)) {\n        print STDOUT;\n    }\n}\n\n\n\n"},{"id":"14398","messageId":"20060110071836.GR18439@ca-server1.us.oracle.com","threadId":"3021","inReplyTo":"20060110063247.GP18439@ca-server1.us.oracle.com","subject":"Re: undoing changes with git-checkout -f","fromName":"Joel Becker","fromEmail":"joel.becker@oracle.com","sentAt":"2006-01-10T07:18:36Z","receivedAt":"2006-01-10T07:18:36Z","isPatch":false,"sender":{"key":"joel.becker@oracle.com","avatar":null},"body":"On Mon, Jan 09, 2006 at 10:32:47PM -0800, Joel Becker wrote:\n> \tHere's what I did.  I modified the usual\n> ssh-tunnel-over-SSL-CONNECT script to honor http_proxy.  I've attached\n> it.  With this, I do as so:\n\n\tBug in the script closing one side of the connection.  Corrected\nversion attached.\n\nJoel\n\n-- \n\n\"I'm drifting and drifting\n Just like a ship out on the sea.\n Cause I ain't got nobody, baby,\n In this world to care for me.\"\n\nJoel Becker\nPrincipal Software Developer\nOracle\nE-mail: joel.becker@oracle.com\nPhone: (650) 506-8127\n\n\n#!/usr/bin/perl\n#\n# git-tunnel.pl\t\n#\n# Usage: git-tunnel.pl ssl-proxy port destination_host port\n#\n# This script can be used by git as a \"core.gitproxy\" to \n# traverse a www-proxy/firewall that supports the http CONNECT \n# command described in\n# http://home.netscape.com/newsref/std/tunneling_ssl.html\n#\n# It uses the http_proxy (or HTTP_PROXY) variable to determine the\n# proxy to connect to.  Put the path to this script in the environment\n# variable GIT_PROXY_COMMAND, or better yet, insert the core.gitproxy\n# definition in .git/config.\n#\n#      .\n#      .\n#      [core]\n#          gitproxy = /path/to/git-tunnel.pl\n#      .\n#      .\n#\n# Written by Urban Kaveus <urban@statt.ericsson.se>\n# Modified to use http_proxy by Joel Becker <joel.becker@oracle.com>\n\nuse Socket;\n\n# Parse command line arguments\n\nif ( $#ARGV != 1 ) {\n    print STDERR \"Usage: $0 destination port\\n\";\n    print STDERR $#ARGV, \"\\n\";\n    exit(1);\n}\n\n$proxy_url = $ENV{'http_proxy'};\nif (!$proxy_url) {\n    $proxy_url = $ENV{'HTTP_PROXY'};\n}\n\n$proxyport = 80;\nif ($proxy_url =~ /^https?:\\/\\/([^:]+)\\/$/) {\n    $sslproxy = $1;\n} elsif ($proxy_url =~ /^https?:\\/\\/([^:]+):([1-9][0-9]*)\\/$/) {\n    $sslproxy = $1;\n    $proxyport = $2;\n} else {\n    print STDERR \"Invalid proxy specification: \\\"$proxy_url\\\"\\n\";\n    exit(1);\n}\n\n$destination = shift;\n$destport    = shift;\n\n# Set up network communication\n\n($protocol) = (getprotobyname(\"tcp\"))[2];\n($proxyip)  = (gethostbyname($sslproxy))[4];\n$localaddr  = pack('S n a4 x8', &AF_INET, 0, \"\\0\\0\\0\\0\");\n$proxyaddr  = pack('S n a4 x8', &AF_INET, $proxyport, $proxyip);\n\nsocket (PROXY, &AF_INET, &SOCK_STREAM, $protocol) or\n    die(\"Failed to create cocket\");\nbind (PROXY, $localaddr) or\n    die(\"Failed to bind socket\");\nconnect (PROXY, $proxyaddr) or\n    die(\"Failed to connect to $sslproxy port $proxyport\");\n\n# Force flushing of socket buffers\n\nselect (PROXY);  $| = 1; \nselect (STDOUT); $| = 1;\n\n# Send a \"CONNECT\" command to proxy:\n\nprint PROXY \"CONNECT $destination:$destport HTTP/1.1\\r\\n\\r\\n\";\n\n# Wait for HTTP status code, bail out if you don't get back a 2xx code.\n\n$_ = <PROXY>;\n($status) = (split())[1];\n\ndie(\"Received a bad status code \\\"$status\\\" from proxy server\") \n    if ( int($status/100) != 2 );\n\n# Skip through remaining part of MIME header\n\nwhile(<PROXY>) {\n    chomp;   # Strip <LF>\n    last if /^[\\r]*$/;\t\t# Empty line or a single <CR> left\n}\n\n# Start copying packets in both directions.\n\n$parent = $$;\nif($child = fork) { # Parent process\n    while (sysread(STDIN,$_,4096)) {\n        print PROXY;\n    }\n    sleep 2;\n    kill(15,$child) if $child;\n}\n\nelse { # Child process\n    while (sysread(PROXY,$_,4096)) {\n        print STDOUT;\n    }\n    sleep 2;\n    kill(15,$parent);\n}\n\n\n"},{"id":"14399","messageId":"7vy81o8r6n.fsf@assigned-by-dhcp.cox.net","threadId":"3021","inReplyTo":"20060110063247.GP18439@ca-server1.us.oracle.com","subject":"Re: undoing changes with git-checkout -f","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-01-10T07:42:24Z","receivedAt":"2006-01-10T07:42:24Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Joel Becker <Joel.Becker@oracle.com> writes:\n\n> ...  I'd really rather have the tunneling\n> code be part of connect.c,...\n\nFor the record, I was pushing for that, but that approach was\ninterrupted primarily by what this message implies:\n\n    http://article.gmane.org/gmane.comp.version-control.git/10985\n\nThe thread that originally introduced the current proxy is here:\n\n    http://thread.gmane.org/gmane.comp.version-control.git/11074\n"},{"id":"14400","messageId":"20060110081635.GS18439@ca-server1.us.oracle.com","threadId":"3021","inReplyTo":"7vy81o8r6n.fsf@assigned-by-dhcp.cox.net","subject":"Re: undoing changes with git-checkout -f","fromName":"Joel Becker","fromEmail":"joel.becker@oracle.com","sentAt":"2006-01-10T08:16:35Z","receivedAt":"2006-01-10T08:16:35Z","isPatch":false,"sender":{"key":"joel.becker@oracle.com","avatar":null},"body":"On Mon, Jan 09, 2006 at 11:42:24PM -0800, Junio C Hamano wrote:\n> Joel Becker <Joel.Becker@oracle.com> writes:\n> > ...  I'd really rather have the tunneling\n> > code be part of connect.c,...\n> \n> For the record, I was pushing for that, but that approach was\n> interrupted primarily by what this message implies:\n> \n>     http://article.gmane.org/gmane.comp.version-control.git/10985\n\n\tYeah, we want to handle multiple things.  Well, I've got it\nworking with git-tunnel.pl, so I'm happy enough not to be using rsync://\n:-)\n\nJoel\n\n-- \n\nLife's Little Instruction Book #139\n\n\t\"Never deprive someone of hope; it might be all they have.\"\n\nJoel Becker\nPrincipal Software Developer\nOracle\nE-mail: joel.becker@oracle.com\nPhone: (650) 506-8127\n"},{"id":"14408","messageId":"Pine.LNX.4.63.0601101549360.26054@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"3021","inReplyTo":"20060110045533.GO18439@ca-server1.us.oracle.com","subject":"Re: undoing changes with git-checkout -f","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-01-10T14:51:52Z","receivedAt":"2006-01-10T14:51:52Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 9 Jan 2006, Joel Becker wrote:\n\n> On Mon, Jan 09, 2006 at 01:46:38PM -0800, Junio C Hamano wrote:\n> > Please do not use rsync:// transport if possible (mvista might\n> > only pubilsh via rsync:// and not git://, so it may not be your\n> > fault).\n> \n> \tCan we teach the git:// fetch program to use CONNECT over HTTP\n> proxies?  rsync can do this, but git:// cannot, so firewalls that block\n> 9418 mean we use rsync://\n\nI think it is good and well with the proxy command support. Everybody can \nwrite a little script.\n\nOtherwise, where would it end? If you include http_proxy functionality in \ngit, why not also https_proxy functionality? And if that, why not \nIP-over-SMTP?\n\nHth,\nDscho\n"},{"id":"14412","messageId":"81b0412b0601100817h2a288a4ag337c749857f2c7fc@mail.gmail.com","threadId":"3021","inReplyTo":"Pine.LNX.4.63.0601101549360.26054@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: undoing changes with git-checkout -f","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2006-01-10T16:17:01Z","receivedAt":"2006-01-10T16:17:01Z","isPatch":false,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"On 1/10/06, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n> >       Can we teach the git:// fetch program to use CONNECT over HTTP\n> > proxies?  rsync can do this, but git:// cannot, so firewalls that block\n> > 9418 mean we use rsync://\n>\n> I think it is good and well with the proxy command support. Everybody can\n> write a little script.\n>\n> Otherwise, where would it end? If you include http_proxy functionality in\n> git, why not also https_proxy functionality? And if that, why not\n\nAnd, BTW, why not? It may as well stop here.\n"},{"id":"14414","messageId":"Pine.LNX.4.63.0601101743180.26542@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"3021","inReplyTo":"81b0412b0601100817h2a288a4ag337c749857f2c7fc@mail.gmail.com","subject":"Re: undoing changes with git-checkout -f","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-01-10T16:45:16Z","receivedAt":"2006-01-10T16:45:16Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Tue, 10 Jan 2006, Alex Riesen wrote:\n\n> On 1/10/06, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n> > >       Can we teach the git:// fetch program to use CONNECT over HTTP\n> > > proxies?  rsync can do this, but git:// cannot, so firewalls that block\n> > > 9418 mean we use rsync://\n> >\n> > I think it is good and well with the proxy command support. Everybody can\n> > write a little script.\n> >\n> > Otherwise, where would it end? If you include http_proxy functionality in\n> > git, why not also https_proxy functionality? And if that, why not\n> \n> And, BTW, why not? It may as well stop here.\n\nBecause it's not the purpose of git. It is the purpose of a tunnel. Let's \nnot make the mistake of Microsoft here: integrate everything until \neverything breaks.\n\nCiao,\nDscho\n"},{"id":"14417","messageId":"81b0412b0601100932v2466151epe44f4c09b18dcc1c@mail.gmail.com","threadId":"3021","inReplyTo":"Pine.LNX.4.63.0601101743180.26542@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: undoing changes with git-checkout -f","fromName":"Alex Riesen","fromEmail":"raa.lkml@gmail.com","sentAt":"2006-01-10T17:32:20Z","receivedAt":"2006-01-10T17:32:20Z","isPatch":false,"sender":{"key":"raa.lkml@gmail.com","avatar":"https://avatars.githubusercontent.com/u/324101?v=4"},"body":"On 1/10/06, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:\n> > > >       Can we teach the git:// fetch program to use CONNECT over HTTP\n> > > > proxies?  rsync can do this, but git:// cannot, so firewalls that block\n> > > > 9418 mean we use rsync://\n> > >\n> > > I think it is good and well with the proxy command support. Everybody can\n> > > write a little script.\n> > >\n> > > Otherwise, where would it end? If you include http_proxy functionality in\n> > > git, why not also https_proxy functionality? And if that, why not\n> >\n> > And, BTW, why not? It may as well stop here.\n>\n> Because it's not the purpose of git. It is the purpose of a tunnel. Let's\n> not make the mistake of Microsoft here: integrate everything until\n> everything breaks.\n\nOf course, I do not propose to put the code into connect.c! Let it be\nip-tunnel.pl,\nor something like that (which btw is really awkward to handle under a well-known\ndisabled OS).\n\nBut, it is not exactly standard tunnel, is it? I mean, can you use it\nfor something\nelse? If not, is there really a point _not_ to put it in the git\nrepository? As tunnel\nscript or program, or as an instruction file on how to setup a firewall?\n"}]}