Skip to content

Reintegrate stdext into edit - #960

Merged
Leonard Hecker (lhecker) merged 3 commits into
mainfrom
dev/lhecker/stdext-byebye
Sep 21, 2026
Merged

Leonard Hecker (lhecker) merged 3 commits into
mainfrom
dev/lhecker/stdext-byebye

Conversation

@lhecker

Copy link
Copy Markdown
Member

A few merged files. Lots of import fixups.
This way we only need to publish 2 crates not 3.

@lhecker
Leonard Hecker (lhecker) merged commit c470ca5 into main Sep 21, 2026
6 checks passed
@lhecker
Leonard Hecker (lhecker) deleted the dev/lhecker/stdext-byebye branch September 21, 2026 20:48
Rahul Pandit (rahulsaipandit) added a commit to rahulsaipandit/edit that referenced this pull request Sep 22, 2026
Do a sync with upstream master fork and reconcile any merge conflicts
Bash Check git remotes and status
IN
git remote -v && git status

OUT
origin https://github.com/rahulsaipandit/edit.git (fetch)
origin https://github.com/rahulsaipandit/edit.git (push)
upstream https://github.com/microsoft/edit.git (fetch)
upstream https://github.com/microsoft/edit.git (push)
On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean
Fetching upstream now.

Bash Fetch upstream and compare divergence
IN
git fetch upstream && git log --oneline main..upstream/main | head -50 && echo "---" && git log --oneline upstream/main..main | head -50

OUT
From https://github.com/microsoft/edit
 * [new branch]      c                      -> upstream/c
 * [new branch]      dev/cazamor/vt-a11y    -> upstream/dev/cazamor/vt-a11y
 * [new branch]      dev/lhecker/230-move-lines -> upstream/dev/lhecker/230-move-lines
 * [new branch]      dev/lhecker/256-color-mapping -> upstream/dev/lhecker/256-color-mapping
 * [new branch]      dev/lhecker/479-word-wrap-proto -> upstream/dev/lhecker/479-word-wrap-proto
 * [new branch]      dev/lhecker/arabic-lam-alef -> upstream/dev/lhecker/arabic-lam-alef
 * [new branch]      dev/lhecker/buffer-benchmark-fix -> upstream/dev/lhecker/buffer-benchmark-fix
 * [new branch]      dev/lhecker/collections -> upstream/dev/lhecker/collections
 * [new branch]      dev/lhecker/css        -> upstream/dev/lhecker/css
 * [new branch]      dev/lhecker/generational -> upstream/dev/lhecker/generational
 * [new branch]      dev/lhecker/io-log     -> upstream/dev/lhecker/io-log
 * [new branch]      dev/lhecker/kbd-defs   -> upstream/dev/lhecker/kbd-defs
 * [new branch]      dev/lhecker/lsh-frontend -> upstream/dev/lhecker/lsh-frontend
 * [new branch]      dev/lhecker/lsh-js     -> upstream/dev/lhecker/lsh-js
 * [new branch]      dev/lhecker/lsh-varint-encoding -> upstream/dev/lhecker/lsh-varint-encoding
 * [new branch]      dev/lhecker/piece-tree -> upstream/dev/lhecker/piece-tree
 * [new branch]      dev/lhecker/superluminal -> upstream/dev/lhecker/superluminal
 * [new branch]      dev/lhecker/syntax-highlighting-backup -> upstream/dev/lhecker/syntax-highlighting-backup
 * [new branch]      dev/lhecker/thread-safety -> upstream/dev/lhecker/thread-safety
 * [new branch]      dev/lhecker/varint     -> upstream/dev/lhecker/varint
 * [new branch]      dev/lhecker/word-navigation-fix -> upstream/dev/lhecker/word-navigation-fix
 * [new branch]      dev/lhecker/word-wrap  -> upstream/dev/lhecker/word-wrap
 * [new branch]      dev/lhecker/word-wrap-rewrite-v2 -> upstream/dev/lhecker/word-wrap-rewrite-v2
 * [new branch]      main                   -> upstream/main
 * [new branch]      users/duhowett/hax/stdout -> upstream/users/duhowett/hax/stdout
 * [new branch]      users/duhowett/titlebars -> upstream/users/duhowett/titlebars
 * [new branch]      users/duhowett/uefi    -> upstream/users/duhowett/uefi
 * [new branch]      users/lhecker/133-review -> upstream/users/lhecker/133-review
 * [new tag]         v2.0.0                 -> v2.0.0
---
b012b1b Add DS_store - one of MAC most stupid files
ad37c18 Add compile paths
db3d85e Update ReadMe
Bash Inspect the three local-only commits
IN
git show --stat b012b1b && echo ---- && git show --stat ad37c18 && echo ---- && git show --stat db3d85e

OUT
<persisted-output>
Output too large (93.9KB). Full output saved to: C:\Users\rahul\.claude\projects\d--Github-edit\d5b5fb37-385f-4268-a3d9-40f59d2062b5\tool-results\bu303vk6s.txt

Preview (first 2KB):
commit b012b1b
Author: RSP <136660770+rahulsaipandit@users.noreply.github.com>
Date:   Wed Feb 18 17:40:23 2026 -0800

    Add DS_store - one of MAC most stupid files

 .gitignore | 5 +++++
 1 file changed, 5 insertions(+)
----
commit ad37c18
Author: RSP <136660770+rahulsaipandit@users.noreply.github.com>
Date:   Wed Feb 18 17:39:48 2026 -0800

    Add compile paths

 .gitignore                                         |    6 +-
 README.md                                          |   11 +

</persisted-output>
This fork has an accidental commit ("Add compile paths") that checked in the entire target/ build directory (compiled artifacts, fingerprints, etc.) into git — that's likely a mistake, not something intended to sync upstream.

Bash Check extent of target/ files committed and current gitignore
IN
git show --stat ad37c18 | wc -l && git ls-files | grep -c '^target/' && du -sh .git 2>/dev/null; git cat-file -p HEAD:.gitignore | head -30

OUT
1351
1342
67M .git
.idea
.vs
*.profraw
lcov.info
target
.DS_Store
Bash Check if target files still tracked in current HEAD
IN
git ls-tree -r HEAD --name-only | grep '^target/' | wc -l

OUT
1342
This confirms it: 1342 build-artifact files under target/ are currently tracked in your main branch (despite .gitignore now excluding target), from the "Add compile paths" commit. This will cause noisy/painful merge conflicts with upstream and bloats the repo. Let me check with you before proceeding.

AskUserQuestion
OUT
Your questions have been answered: "Your fork's main branch has 1342 build-artifact files (target/) accidentally committed, which .gitignore now excludes but git still tracks. How should I handle this before merging upstream?"="Merge upstream first, deal with target/ after". You can now continue with these answers in mind.
Proceeding with the merge as-is, and I'll handle target/ separately afterward.

Bash Merge upstream/main into local main
IN
git merge upstream/main --no-edit 2>&1 | tail -100

OUT
Auto-merging Cargo.toml
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
Only one conflict, in README.md. Let's look at it.

Bash Show merge status
IN
git status --short | head -20

OUT
D  .cargo/release-nightly.toml
M  .cargo/release-windows-ms.toml
M  .cargo/release.toml
A  .github/codeql/codeql-config.yml
A  .github/dependabot.yml
M  .github/workflows/ci.yml
A  .github/workflows/codeql-analysis.yml
M  .github/workflows/winget.yml
A  .pipelines/nuget.config
A  .pipelines/packages.config
M  .pipelines/release.yml
M  .vscode/launch.json
M  Cargo.lock
M  Cargo.toml
UU README.md
A  assets/build-windows-setup.ps1
A  assets/edit.iss
A  assets/highlighting-tests/COMMIT_EDITMSG
A  assets/highlighting-tests/batch.bat
A  assets/highlighting-tests/c.c
Read D:\Github\edit\README.md
Edit D:\Github\edit\README.md
Removed 4 lines
Now let's check the rest of the file for the personal PATH-setup lines that were tacked on, and verify no other conflicts remain.

Bash Check for leftover conflict markers
IN
git diff --check | head -30; echo "---remaining conflicts---"; git status --short | grep '^UU'

OUT
---remaining conflicts---
UU README.md
Bash Confirm no conflict markers remain in README
IN
grep -n '<<<<<<<\|=======\|>>>>>>>' README.md

OUT
(Bash completed with no output)
Bash Stage resolved README and check remaining status
IN
git add README.md && git status --short | grep -v '^A\|^M ' | head -30

OUT
D  .cargo/release-nightly.toml
R  crates/stdext/src/alloc.rs -> crates/edit/src/alloc.rs
R  crates/stdext/src/arena/debug.rs -> crates/edit/src/arena/debug.rs
R  crates/stdext/src/arena/fs.rs -> crates/edit/src/arena/fs.rs
R  crates/stdext/src/arena/mod.rs -> crates/edit/src/arena/mod.rs
R  crates/stdext/src/arena/release.rs -> crates/edit/src/arena/release.rs
R  crates/stdext/src/arena/scratch.rs -> crates/edit/src/arena/scratch.rs
D  crates/edit/src/buffer/line_cache.rs
R  crates/stdext/src/collections/mod.rs -> crates/edit/src/collections/mod.rs
R  crates/stdext/src/collections/string.rs -> crates/edit/src/collections/string.rs
R  crates/stdext/src/collections/vec.rs -> crates/edit/src/collections/vec.rs
R  crates/stdext/src/simd/mod.rs -> crates/edit/src/lsh/definitions.rs
R  crates/stdext/src/simd/memset.rs -> crates/edit/src/simd/memset.rs
R  crates/stdext/src/unicode/utf8.rs -> crates/edit/src/unicode/utf8.rs
R  crates/edit/src/glob.rs -> crates/lsh/src/glob.rs
D  crates/stdext/Cargo.toml
D  crates/stdext/src/helpers.rs
D  crates/stdext/src/lib.rs
D  crates/stdext/src/sys/mod.rs
D  crates/stdext/src/sys/unix.rs
D  crates/stdext/src/sys/windows.rs
D  crates/stdext/src/unicode/mod.rs
D  rust-toolchain.toml
This all looks like normal upstream refactoring (moving code between crates), no conflicts left. Let's finalize the merge commit.

Bash Complete the merge commit
IN
git commit --no-edit && git log --oneline -5

OUT
[main 778ffd6] Merge remote-tracking branch 'upstream/main'
778ffd6 Merge remote-tracking branch 'upstream/main'
c470ca5 Reintegrate stdext into edit (microsoft#960)
3cff89e Enable CodeQL for actions (microsoft#959)
2c4177f Turn lsh into a standalone crate (microsoft#958)
f6ae615 Fix reading overly large files (microsoft#954)
Now let's verify the build still works and check the target/ tracking situation post-merge.

Bash Check target/ tracking and clean working tree after merge
IN
git ls-tree -r HEAD --name-only | grep -c '^target/'; echo "---"; git status --short | head

OUT
1342
---
Working tree is clean and merge completed. The target/ tracking issue (1342 files) still remains from before, as you asked to defer it. Do you want me to clean that up now, and would you like me to push main to your origin fork?

AskUserQuestion
OUT
Your questions have been answered: "The merge is done and committed locally (clean, no conflicts remaining). What next?"="Just push to origin". You can now continue with these answers in mind.
Bash Push merged main to origin fork
IN
git push origin main

OUT
To https://github.com/rahulsaipandit/edit.git
   b012b1b..778ffd6  main -> main
Done. Synced with upstream/main, resolved the single README.md conflict (kept your "Renaming to msedit" section, adopted upstream's simpler intro line for the config table), committed the merge, and pushed to origin/main.

Outstanding item: your fork still has 1342 build-artifact files under target/ tracked in git from an earlier accidental commit — .gitignore excludes it now but the files remain tracked. Let me know if you'd like me to run git rm -r --cached target and commit that cleanup separately.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants