Fossil SCM

For Git conversions, mention that the newer PowerShell versions are able to pipe byte streams between native commands.

danield 2025-01-31 15:56 trunk
Commit c07468c20725ccc65da9046f73d760413da883ea4e181f845edaa3e176454f6f
1 file changed +9 -8
+9 -8
--- www/inout.wiki
+++ www/inout.wiki
@@ -40,18 +40,19 @@
4040
The above commands work best on proper POSIX systems like Linux, macOS,
4141
and the BSDs, where everything <tt>git</tt> sends is consumed by
4242
<tt>fossil</tt> as soon as it can manage, with both programs working
4343
concurrently.
4444
45
-For some reason, the current version of PowerShell included with Windows
46
-chokes on the conversion when the in-flight repository size exceeds
47
-available memory. We do not know why it buffers the entire stream
48
-emitted by "<tt>git fast-export</tt>" before sending it along to Fossil,
49
-but we've seen the problem recur on multiple machines.
50
-
51
-While one workaround is to fall back to <tt>cmd.exe</tt> — which doesn't
52
-seem to be affected by this problem — we instead recommend using
45
+Historically, PowerShell indiscriminately sent objects — as opposed to raw
46
+bytes — through its pipes, and buffered standard input for external processes.
47
+This made it choke on the conversion when the in-flight repository size
48
+exceeded available memory. Starting with version 7.4 (2023-11-16), PowerShell
49
+supports byte stream piping between native commands and file redirection.
50
+
51
+If you are stuck with an older version, one workaround is to fall back to
52
+<tt>cmd.exe</tt> — which doesn't seem to be affected by this problem.
53
+Nevertheless, we instead recommend using
5354
Microsoft's own [https://learn.microsoft.com/en-us/windows/wsl/ | Windows
5455
Subsystem for Linux] or either of the two popular "Git for Windows"
5556
distributions based on MSYS2. They handle pipes the POSIX way, avoiding
5657
any dependency on the amount of data involved.
5758
5859
--- www/inout.wiki
+++ www/inout.wiki
@@ -40,18 +40,19 @@
40 The above commands work best on proper POSIX systems like Linux, macOS,
41 and the BSDs, where everything <tt>git</tt> sends is consumed by
42 <tt>fossil</tt> as soon as it can manage, with both programs working
43 concurrently.
44
45 For some reason, the current version of PowerShell included with Windows
46 chokes on the conversion when the in-flight repository size exceeds
47 available memory. We do not know why it buffers the entire stream
48 emitted by "<tt>git fast-export</tt>" before sending it along to Fossil,
49 but we've seen the problem recur on multiple machines.
50
51 While one workaround is to fall back to <tt>cmd.exe</tt> — which doesn't
52 seem to be affected by this problem — we instead recommend using
 
53 Microsoft's own [https://learn.microsoft.com/en-us/windows/wsl/ | Windows
54 Subsystem for Linux] or either of the two popular "Git for Windows"
55 distributions based on MSYS2. They handle pipes the POSIX way, avoiding
56 any dependency on the amount of data involved.
57
58
--- www/inout.wiki
+++ www/inout.wiki
@@ -40,18 +40,19 @@
40 The above commands work best on proper POSIX systems like Linux, macOS,
41 and the BSDs, where everything <tt>git</tt> sends is consumed by
42 <tt>fossil</tt> as soon as it can manage, with both programs working
43 concurrently.
44
45 Historically, PowerShell indiscriminately sent objects — as opposed to raw
46 bytes — through its pipes, and buffered standard input for external processes.
47 This made it choke on the conversion when the in-flight repository size
48 exceeded available memory. Starting with version 7.4 (2023-11-16), PowerShell
49 supports byte stream piping between native commands and file redirection.
50
51 If you are stuck with an older version, one workaround is to fall back to
52 <tt>cmd.exe</tt> — which doesn't seem to be affected by this problem.
53 Nevertheless, we instead recommend using
54 Microsoft's own [https://learn.microsoft.com/en-us/windows/wsl/ | Windows
55 Subsystem for Linux] or either of the two popular "Git for Windows"
56 distributions based on MSYS2. They handle pipes the POSIX way, avoiding
57 any dependency on the amount of data involved.
58
59

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button