{"thread":{"id":"61308","subject":"[BUG] Clones from local repositories do not work correctly under Windows","startedAt":"2024-04-11T17:03:53Z","lastAt":"2024-04-12T21:54:03Z","messageCount":9,"participants":["L. E. Segovia","Johannes Sixt","Junio C Hamano","rsbecker@nexbridge.com"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"492786","messageId":"44020a6a-707f-4505-adde-e79cda63d711@amyspark.me","threadId":"61308","inReplyTo":null,"subject":"[BUG] Clones from local repositories do not work correctly under Windows","fromName":"L. E. Segovia","fromEmail":"amy@amyspark.me","sentAt":"2024-04-11T17:03:43Z","receivedAt":"2024-04-11T17:03:53Z","isPatch":false,"sender":{"key":"amy@amyspark.me","avatar":null},"body":"Thank you for filling out a Git bug report!\nPlease answer the following questions to help us understand your issue.\n\nWhat did you do before the bug happened? (Steps to reproduce your issue)\n\nUnder Windows 10 21H2, I cloned a Git repository off an existing local\ncopy, then applied a patch to it using `git am`.\n\nWhat did you expect to happen? (Expected behavior)\n\nOperations on the repo like `git status` and `git log` should work out\nof the box.\n\nWhat happened instead? (Actual behavior)\n\nI keep getting this error:\n\n> error: unable to normalize alternate object path:\n/c/Users/Amalia/.cache/cerbero-sources/librsvg-2.40.20/.git/objects\n\nWith `git status` it happens only once, but with `git log` it's a wall\nworth of that error before the log is actually generated and paged.\n\nThis error makes Git complain, but tools depending on it (in particular\nCargo) outright crash. For instance, this is the error I got when\nattempting to build the Rust crate above:\n\n> Error: CliError { error: Some(failed to determine package fingerprint\nfor build script for librsvg v2.58.0-beta.1\n(E:\\cerbero\\build\\sources\\msvc_x86_64\\librsvg-2.40.20\\rsvg)\n>\n> Caused by:\n>     0: failed to determine the most recently modified file in\nE:\\cerbero\\build\\sources\\msvc_x86_64\\librsvg-2.40.20\\rsvg\n>     1: failed to determine list of files in\nE:\\cerbero\\build\\sources\\msvc_x86_64\\librsvg-2.40.20\\rsvg\n>     2: object not found - no match for id\n(32467a0191907fd571b502e395d033a06dfee655); class=Odb (9); code=NotFound\n(-3)), exit_code: 101 }\n\nWhat's different between what you expected and what actually happened?\n\nIt seems that under Windows, the code in\nhttps://github.com/git/git/blame/436d4e5b14df49870a897f64fe92c0ddc7017e4c/object-file.c#L525\nis not able to resolve the absolute path of the \"remote\" (the original\ncopy) at all. I checked if it was a filesystem traversal issue by\nissuing the clone against a folder in the same drive, but there was no\nchange.\n\nAnything else you want to add:\n\nPossibly introduced in 2.39.0:\nhttps://github.com/git/git/commit/199337d6ec5c656e52b914b5dac3820cc5e363f3\n\nPlease review the rest of the bug report below.\nYou can delete any lines you don't wish to share.\n\n\n[System Info]\ngit version:\ngit version 2.44.0.windows.1\ncpu: x86_64\nbuilt from commit: ad0bbfffa543db6979717be96df630d3e5741331\nsizeof-long: 4\nsizeof-size_t: 8\nshell-path: /bin/sh\nfeature: fsmonitor--daemon\nuname: Windows 10.0 19045\ncompiler info: gnuc: 13.2\nlibc info: no libc information available\n$SHELL (typically, interactive shell): <unset>\n\n\n[Enabled Hooks]\n\n-- \namyspark 🌸 https://www.amyspark.me\n\n"},{"id":"492844","messageId":"2f069d1f-aa4a-4259-9cc5-dcf912f59a17@kdbg.org","threadId":"61308","inReplyTo":"44020a6a-707f-4505-adde-e79cda63d711@amyspark.me","subject":"Re: [BUG] Clones from local repositories do not work correctly under Windows","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2024-04-12T06:56:46Z","receivedAt":"2024-04-12T06:57:02Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 11.04.24 um 19:03 schrieb L. E. Segovia:\n> Thank you for filling out a Git bug report!\n> Please answer the following questions to help us understand your issue.\n> \n> What did you do before the bug happened? (Steps to reproduce your issue)\n> \n> Under Windows 10 21H2, I cloned a Git repository off an existing local\n> copy, then applied a patch to it using `git am`.\n\nThis is an imprecise description of what you did. I did my best to\nfollow these instructions, but could not reproduce the problem mentioned\nbelow.\n\nYou should post the commands you have given with their output.\n\n> \n> What did you expect to happen? (Expected behavior)\n> \n> Operations on the repo like `git status` and `git log` should work out\n> of the box.\n> \n> What happened instead? (Actual behavior)\n> \n> I keep getting this error:\n> \n>> error: unable to normalize alternate object path:\n> /c/Users/Amalia/.cache/cerbero-sources/librsvg-2.40.20/.git/objects\n\nWhat is this .cache here?\n\n-- Hannes\n\n"},{"id":"492868","messageId":"e25bbce7-8338-430b-865f-690fe3c94fb6@amyspark.me","threadId":"61308","inReplyTo":"2f069d1f-aa4a-4259-9cc5-dcf912f59a17@kdbg.org","subject":"Re: [BUG] Clones from local repositories do not work correctly under Windows","fromName":"L. E. Segovia","fromEmail":"amy@amyspark.me","sentAt":"2024-04-12T13:05:36Z","receivedAt":"2024-04-12T13:05:45Z","isPatch":false,"sender":{"key":"amy@amyspark.me","avatar":null},"body":"Hi Johannes,\n\nUnder a MSYS2 shell, follow these steps (feel free to replace the choice\nof remote repo with any other supporting a Rust crate):\n\n1. `cd` to a directory of your choice (let's call it `dirA`).\n2. `git clone https://gitlab.gnome.org/GNOME/librsvg.git .`\n3. `git checkout -b cerbero_build`.\n4. `cd ..`\n5. `git clone <full path to dirA> -s -b cerbero_build dirB`\n6. `cd dirB`\n7. `git status`\n\nNow switch to any other shell of your choice, such as Git Bash, CMD, or\nPowerShell, and try issuing commands such as `git status`. It will\nresult in a wall of \"error: unable to normalize...\"\n\nTo further the error state, try `git am` the attached diff to the repo\nunder the MSYS2 shell. It will succeed, but afterwards you'll also start\nto get fatal errors from `git status`:\n\n> error: unable to normalize alternate object path: <dirA>\n> error: Could not read 819d81aefc255dee9d8845363038f7fdec809673\n> fatal: Failed to traverse parents of commit\n90042c71ef79cebeba782c98b26f0532de0e6a25\n\nAttempting to build the repo using the well-known pair `meson setup\nbuild; meson compile -C build` (assuming you have all the dependencies\naround) will, at this step, crash at the very start with the following\nRust stacktrace:\n\n> Error: CliError { error: Some(failed to determine package fingerprint for build script for librsvg v2.58.0-beta.1 (<dirB>/rsvg)\n> \n> Caused by:\n>     0: failed to determine the most recently modified file in <dirB>\\rsvg\n>     1: failed to determine list of files in <dirB>\\rsvg\n>     2: object not found - no match for id (32467a0191907fd571b502e395d033a06dfee655); class=Odb (9); code=NotFound (-3)), exit_code: 101 }\n\nIt should be noted, however, than exchanging the shells (cloning in Git\nBash, but then checking and patching under MSYS) appears to not cause\nany errors. That leads me to believe there's some part of Git that is\nnot handling line separators under MSYS specifically.\n\n> What is this .cache here?\n\nThis is part of the Cerbero package management system, used by GStreamer\nto craft its SDK:\n\nhttps://gitlab.freedesktop.org/gstreamer/cerbero.git\n\nThe above mentioned steps were reverse engineered from its caching steps.\n\nHope this is of use.\n\nBest,\n\namyspark\n\nOn 12/04/2024 03:56, Johannes Sixt wrote:\n> Am 11.04.24 um 19:03 schrieb L. E. Segovia:\n>> Thank you for filling out a Git bug report!\n>> Please answer the following questions to help us understand your issue.\n>>\n>> What did you do before the bug happened? (Steps to reproduce your issue)\n>>\n>> Under Windows 10 21H2, I cloned a Git repository off an existing local\n>> copy, then applied a patch to it using `git am`.\n> \n> This is an imprecise description of what you did. I did my best to\n> follow these instructions, but could not reproduce the problem mentioned\n> below.\n> \n> You should post the commands you have given with their output.\n> \n>>\n>> What did you expect to happen? (Expected behavior)\n>>\n>> Operations on the repo like `git status` and `git log` should work out\n>> of the box.\n>>\n>> What happened instead? (Actual behavior)\n>>\n>> I keep getting this error:\n>>\n>>> error: unable to normalize alternate object path:\n>> /c/Users/Amalia/.cache/cerbero-sources/librsvg-2.40.20/.git/objects\n> \n> What is this .cache here?\n> \n> -- Hannes\n> \n\n-- \namyspark 🌸 https://www.amyspark.me\n\n\nFrom 6519af2fbab17cd4b1861e6b9cbfbb2c76906edf Mon Sep 17 00:00:00 2001\nFrom: \"L. E. Segovia\" <amy@amyspark.me>\nDate: Fri, 12 Apr 2024 09:43:51 -0300\nSubject: [PATCH] test\n\n---\n AUTHORS | 1 +\n 1 file changed, 1 insertion(+)\n\ndiff --git a/AUTHORS b/AUTHORS\nindex 9971ce58..7b2a9266 100644\n--- a/AUTHORS\n+++ b/AUTHORS\n@@ -68,6 +68,7 @@ Kurosawa Takeshi\n liucougar\n LRN\n Laszlo Peter\n+L. E. Segovia\n Luis Menina\n Maarten Bosmans\n Maciej Piechotka\n-- \n2.44.0.windows.1\n\n"},{"id":"492876","messageId":"01cf64db-2ff5-4be5-8968-d280ab0ffc50@kdbg.org","threadId":"61308","inReplyTo":"e25bbce7-8338-430b-865f-690fe3c94fb6@amyspark.me","subject":"Re: [BUG] Clones from local repositories do not work correctly under Windows","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2024-04-12T16:16:35Z","receivedAt":"2024-04-12T16:16:45Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 12.04.24 um 15:05 schrieb L. E. Segovia:\n> Under a MSYS2 shell, follow these steps (feel free to replace the choice\n> of remote repo with any other supporting a Rust crate):\n> \n> 1. `cd` to a directory of your choice (let's call it `dirA`).\n> 2. `git clone https://gitlab.gnome.org/GNOME/librsvg.git .`\n> 3. `git checkout -b cerbero_build`.\n> 4. `cd ..`\n> 5. `git clone <full path to dirA> -s -b cerbero_build dirB`\n> 6. `cd dirB`\n> 7. `git status`\n> \n> Now switch to any other shell of your choice, such as Git Bash, CMD, or\n> PowerShell, and try issuing commands such as `git status`. It will\n> result in a wall of \"error: unable to normalize...\"\n\nThanks, that is much more helpful. Here are my assumption, my\nexplanation of the symptoms, and the conclusion (which is basically \"if\nit hurts, don't do it\"):\n\nI assume that you have two installations of Git. One installation is\nused when you use the git command from the MSYS2 shell; it is the MSYS2\nversion. The other installation is Git for Windows or equivalent that is\nused by all the other shells.\n\nWhen you clone a repository with -s, a .git/objects/info/alternates file\nis initialized that contains the path to the original repository. You\ncan see its contents with `git count-objects -v`. I tested the\nreproduction recipe with my own build (which is a MinGW build, much like\nGit for Windows), and it looks like this:\n\nC:\\Temp\\repoclone>git count-objects -v\ncount: 0\nsize: 0\nin-pack: 0\npacks: 0\nsize-pack: 0\nprune-packable: 0\ngarbage: 0\nsize-garbage: 0\nalternate: C:/Temp/repoorig/.git/objects\n\nSee the last line? It begins with a drive letter. When you call the\ncommand with the MSYS2 version, it will look more like this:\n\nalternate: /c/Temp/repoorig/.git/objects\n\nThis is the MSYS2/Cygwin absolute path with a \"drive letter\".\nUnfortunately, this kind of path is unintelligible for Git for Windows.\nIt expects absolute paths to begin with drive letter-colon or a\ndouble-slash or double-backslash. For this reason, it reports \"unable to\nnormalize alternate object path\".\n\nThe conclusion is: Do not use two different flavors of Git on a\nrepository that is set up with a link to an alternate repository.\n\nBTW, I did not do the followup test with `git am`. (Actually, I did, but\nthere were no errors.) So, I cannot tell why your MSYS2 version suddenly\nalso reports the \"unable to normalize\" error.\n\n-- Hannes\n\n"},{"id":"492884","messageId":"1011527c-f50a-46ea-b68e-29dec7845003@amyspark.me","threadId":"61308","inReplyTo":"01cf64db-2ff5-4be5-8968-d280ab0ffc50@kdbg.org","subject":"Re: [BUG] Clones from local repositories do not work correctly under Windows","fromName":"L. E. Segovia","fromEmail":"amy@amyspark.me","sentAt":"2024-04-12T17:19:33Z","receivedAt":"2024-04-12T17:19:44Z","isPatch":false,"sender":{"key":"amy@amyspark.me","avatar":null},"body":"Hi Johannes,\n\nIndeed there are two -- one lives under the MSYS2 prefix, the other\nunder Program Files. However, Cargo seems to access the Git data\ndirectly, so I believe you're right -- it's not able to understand the\npath syntax.\n\nAs for MSYS2, so far my testing points to an inability to chain back to\nthe original clone. Given the mixup of installs, it's best to focus on\nfixing that.\n\nThanks for the explanation!\n\namyspark\n\nOn 12/04/2024 13:16, Johannes Sixt wrote:\n> Am 12.04.24 um 15:05 schrieb L. E. Segovia:\n>> Under a MSYS2 shell, follow these steps (feel free to replace the choice\n>> of remote repo with any other supporting a Rust crate):\n>>\n>> 1. `cd` to a directory of your choice (let's call it `dirA`).\n>> 2. `git clone https://gitlab.gnome.org/GNOME/librsvg.git .`\n>> 3. `git checkout -b cerbero_build`.\n>> 4. `cd ..`\n>> 5. `git clone <full path to dirA> -s -b cerbero_build dirB`\n>> 6. `cd dirB`\n>> 7. `git status`\n>>\n>> Now switch to any other shell of your choice, such as Git Bash, CMD, or\n>> PowerShell, and try issuing commands such as `git status`. It will\n>> result in a wall of \"error: unable to normalize...\"\n> \n> Thanks, that is much more helpful. Here are my assumption, my\n> explanation of the symptoms, and the conclusion (which is basically \"if\n> it hurts, don't do it\"):\n> \n> I assume that you have two installations of Git. One installation is\n> used when you use the git command from the MSYS2 shell; it is the MSYS2\n> version. The other installation is Git for Windows or equivalent that is\n> used by all the other shells.\n> \n> When you clone a repository with -s, a .git/objects/info/alternates file\n> is initialized that contains the path to the original repository. You\n> can see its contents with `git count-objects -v`. I tested the\n> reproduction recipe with my own build (which is a MinGW build, much like\n> Git for Windows), and it looks like this:\n> \n> C:\\Temp\\repoclone>git count-objects -v\n> count: 0\n> size: 0\n> in-pack: 0\n> packs: 0\n> size-pack: 0\n> prune-packable: 0\n> garbage: 0\n> size-garbage: 0\n> alternate: C:/Temp/repoorig/.git/objects\n> \n> See the last line? It begins with a drive letter. When you call the\n> command with the MSYS2 version, it will look more like this:\n> \n> alternate: /c/Temp/repoorig/.git/objects\n> \n> This is the MSYS2/Cygwin absolute path with a \"drive letter\".\n> Unfortunately, this kind of path is unintelligible for Git for Windows.\n> It expects absolute paths to begin with drive letter-colon or a\n> double-slash or double-backslash. For this reason, it reports \"unable to\n> normalize alternate object path\".\n> \n> The conclusion is: Do not use two different flavors of Git on a\n> repository that is set up with a link to an alternate repository.\n> \n> BTW, I did not do the followup test with `git am`. (Actually, I did, but\n> there were no errors.) So, I cannot tell why your MSYS2 version suddenly\n> also reports the \"unable to normalize\" error.\n> \n> -- Hannes\n> \n\n-- \namyspark 🌸 https://www.amyspark.me\n\n"},{"id":"492886","messageId":"xmqqil0mmqpx.fsf@gitster.g","threadId":"61308","inReplyTo":"01cf64db-2ff5-4be5-8968-d280ab0ffc50@kdbg.org","subject":"Re: [BUG] Clones from local repositories do not work correctly under Windows","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2024-04-12T17:32:42Z","receivedAt":"2024-04-12T17:32:45Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Sixt <j6t@kdbg.org> writes:\n\n> alternate: C:/Temp/repoorig/.git/objects\n> alternate: /c/Temp/repoorig/.git/objects\n>\n> This is the MSYS2/Cygwin absolute path with a \"drive letter\".\n> Unfortunately, this kind of path is unintelligible for Git for Windows.\n> It expects absolute paths to begin with drive letter-colon or a\n> double-slash or double-backslash. For this reason, it reports \"unable to\n> normalize alternate object path\".\n>\n> The conclusion is: Do not use two different flavors of Git on a\n> repository that is set up with a link to an alternate repository.\n\nI do not complain to the conclusion, and I do not use Windows, but\nit makes me wonder if there is a way to spell that full path that\ncan be understood by both implementations.  The two implementations\nare not incompatible in the actual object contents and refnames and\nother things in .git/ directory, are they?\n\nIn short, does MSYS2/Cygwin understand paths in \"C:/Temp/...\" style,\nand if so, writing that out, even though it may not what it\nconsiders the native format, would make the world a happier place.\n\n\n\n"},{"id":"492889","messageId":"02b801da8d00$b2c5b9f0$18512dd0$@nexbridge.com","threadId":"61308","inReplyTo":"xmqqil0mmqpx.fsf@gitster.g","subject":"RE: [BUG] Clones from local repositories do not work correctly under Windows","fromName":"","fromEmail":"rsbecker@nexbridge.com","sentAt":"2024-04-12T17:41:43Z","receivedAt":"2024-04-12T17:41:57Z","isPatch":false,"sender":{"key":"randall.becker@nexbridge.ca","avatar":"https://avatars.githubusercontent.com/u/28956764?v=4"},"body":"On Friday, April 12, 2024 1:33 PM, Junio C Hamano wrote:\n>Johannes Sixt <j6t@kdbg.org> writes:\n>\n>> alternate: C:/Temp/repoorig/.git/objects\n>> alternate: /c/Temp/repoorig/.git/objects\n>>\n>> This is the MSYS2/Cygwin absolute path with a \"drive letter\".\n>> Unfortunately, this kind of path is unintelligible for Git for Windows.\n>> It expects absolute paths to begin with drive letter-colon or a\n>> double-slash or double-backslash. For this reason, it reports \"unable\n>> to normalize alternate object path\".\n>>\n>> The conclusion is: Do not use two different flavors of Git on a\n>> repository that is set up with a link to an alternate repository.\n>\n>I do not complain to the conclusion, and I do not use Windows, but it makes\nme\n>wonder if there is a way to spell that full path that can be understood by\nboth\n>implementations.  The two implementations are not incompatible in the\nactual\n>object contents and refnames and other things in .git/ directory, are they?\n>\n>In short, does MSYS2/Cygwin understand paths in \"C:/Temp/...\" style, and if\nso,\n>writing that out, even though it may not what it considers the native\nformat, would\n>make the world a happier place.\n\nI'm my environment (<2 month old Cygwin update), the path would be\n/cygdrive/c/temp... I have not had issues using that style with git. Cygwin\nitself does not understand C:\\Temp (resolves to C:temp), but does understand\nC:/Temp in bash and various utilities. It also understands (and expects) ~\nto mean /home/user (C:\\Cygwin64\\home\\user) in the Cygwin space, not relative\nto C:\\Users\\user for resolving .gitconfig.\n\n"},{"id":"492895","messageId":"c0353f84-de98-4c74-90fb-bfe1c3f14d21@amyspark.me","threadId":"61308","inReplyTo":"02b801da8d00$b2c5b9f0$18512dd0$@nexbridge.com","subject":"Re: [BUG] Clones from local repositories do not work correctly under Windows","fromName":"L. E. Segovia","fromEmail":"amy@amyspark.me","sentAt":"2024-04-12T20:10:41Z","receivedAt":"2024-04-12T20:10:50Z","isPatch":false,"sender":{"key":"amy@amyspark.me","avatar":null},"body":"Hi all,\n\nIn Cerbero, we use cygpath or a bespoke conversion mechanism, depending\non availability:\n\nhttps://gitlab.freedesktop.org/gstreamer/cerbero/-/blob/main/cerbero/utils/__init__.py#L142-149\n\nI'm not sure if there's a function in MSYS2's libc exposing that.\n\namyspark\n\nOn 12/04/2024 14:41, rsbecker@nexbridge.com wrote:\n> On Friday, April 12, 2024 1:33 PM, Junio C Hamano wrote:\n>> Johannes Sixt <j6t@kdbg.org> writes:\n>>\n>>> alternate: C:/Temp/repoorig/.git/objects\n>>> alternate: /c/Temp/repoorig/.git/objects\n>>>\n>>> This is the MSYS2/Cygwin absolute path with a \"drive letter\".\n>>> Unfortunately, this kind of path is unintelligible for Git for Windows.\n>>> It expects absolute paths to begin with drive letter-colon or a\n>>> double-slash or double-backslash. For this reason, it reports \"unable\n>>> to normalize alternate object path\".\n>>>\n>>> The conclusion is: Do not use two different flavors of Git on a\n>>> repository that is set up with a link to an alternate repository.\n>>\n>> I do not complain to the conclusion, and I do not use Windows, but it makes\n> me\n>> wonder if there is a way to spell that full path that can be understood by\n> both\n>> implementations.  The two implementations are not incompatible in the\n> actual\n>> object contents and refnames and other things in .git/ directory, are they?\n>>\n>> In short, does MSYS2/Cygwin understand paths in \"C:/Temp/...\" style, and if\n> so,\n>> writing that out, even though it may not what it considers the native\n> format, would\n>> make the world a happier place.\n> \n> I'm my environment (<2 month old Cygwin update), the path would be\n> /cygdrive/c/temp... I have not had issues using that style with git. Cygwin\n> itself does not understand C:\\Temp (resolves to C:temp), but does understand\n> C:/Temp in bash and various utilities. It also understands (and expects) ~\n> to mean /home/user (C:\\Cygwin64\\home\\user) in the Cygwin space, not relative\n> to C:\\Users\\user for resolving .gitconfig.\n> \n\n-- \namyspark 🌸 https://www.amyspark.me\n\n"},{"id":"492896","messageId":"ee644475-8387-4dbf-a4b9-0d301bd7cf5b@kdbg.org","threadId":"61308","inReplyTo":"xmqqil0mmqpx.fsf@gitster.g","subject":"Re: [BUG] Clones from local repositories do not work correctly under Windows","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2024-04-12T21:53:51Z","receivedAt":"2024-04-12T21:54:03Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 12.04.24 um 19:32 schrieb Junio C Hamano:\n> Johannes Sixt <j6t@kdbg.org> writes:\n> \n>> alternate: C:/Temp/repoorig/.git/objects\n>> alternate: /c/Temp/repoorig/.git/objects\n>>\n>> This is the MSYS2/Cygwin absolute path with a \"drive letter\".\n>> Unfortunately, this kind of path is unintelligible for Git for Windows.\n>> It expects absolute paths to begin with drive letter-colon or a\n>> double-slash or double-backslash. For this reason, it reports \"unable to\n>> normalize alternate object path\".\n>>\n>> The conclusion is: Do not use two different flavors of Git on a\n>> repository that is set up with a link to an alternate repository.\n> \n> I do not complain to the conclusion, and I do not use Windows, but\n> it makes me wonder if there is a way to spell that full path that\n> can be understood by both implementations.  The two implementations\n> are not incompatible in the actual object contents and refnames and\n> other things in .git/ directory, are they?\n> \n> In short, does MSYS2/Cygwin understand paths in \"C:/Temp/...\" style,\n> and if so, writing that out, even though it may not what it\n> considers the native format, would make the world a happier place.\n\nYes, MSYS2 should understand C:/Temp. This can be achieved easily by\ndoing the clone with Git for Windows. A small complication is, though,\nthat the actual contents of the .git/objects/info/alternates is\nconstructed from the literal command line arguments. In my test I used\n\n   git clone -s C:\\Temp\\repoorig repoclone\n\nwhich writes\n\n   C:\\Temp\\repoorig/.git/objects\n\nto the file. The path we see in the output of count-objects -v is\nobviously a normalized version. Users will have to say\n\n   git clone -s C:/Temp/repoorig repoclone\n\nto get the more widely understood version into the file.\n\n-- Hannes\n\n"}]}