Skip to content

Comments

feat: Add check-merge-conflict util command and builtin#322

Merged
jdx merged 1 commit intomainfrom
feat/util-check-merge-conflict
Oct 3, 2025
Merged

feat: Add check-merge-conflict util command and builtin#322
jdx merged 1 commit intomainfrom
feat/util-check-merge-conflict

Conversation

@jdx
Copy link
Owner

@jdx jdx commented Oct 3, 2025

Implements detection of Git merge conflict markers in files.

Changes

  • Add hk util check-merge-conflict command
  • Add Builtins.check_merge_conflict
  • Add Rust unit tests (4 tests)
  • Add bats integration tests (9 tests)
  • Add documentation

Features

  • Detects <<<<<<<, =======, and >>>>>>> markers
  • Ignores markers in middle of lines
  • Exit code 1 if conflicts found, 0 if clean

All tests passing (243 total).

🤖 Generated with Claude Code


Note

Adds hk util check-merge-conflict and Builtins.check_merge_conflict to detect Git merge conflict markers in files.

  • CLI/Backend:
    • Add check-merge-conflict subcommand (src/cli/util/check_merge_conflict.rs) to scan files for <<<<<<<, =======, >>>>>>> markers; exits with code 1 on detection.
    • Wire into util module (src/cli/util/mod.rs).
  • Builtins:
    • New builtin check_merge_conflict (pkl/builtins/check_merge_conflict.pkl); added export in pkl/Builtins.pkl.
  • Docs:
    • Document builtin in docs/builtins.md and CLI usage in docs/cli/util.md.
  • Tests:
    • Rust unit tests for marker detection.
    • Bats integration tests covering single/multiple files, whitespace, and builtin integration.

Written by Cursor Bugbot for commit 2104f85. This will update automatically on new commits. Configure here.

@jdx jdx force-pushed the feat/util-check-merge-conflict branch 2 times, most recently from 85ffc36 to f92b115 Compare October 3, 2025 16:02
@jdx jdx enabled auto-merge (squash) October 3, 2025 16:09
Implements detection of Git merge conflict markers in files.

- Add `hk util check-merge-conflict` command
- Add `Builtins.check_merge_conflict`
- Add Rust unit tests (4 tests)
- Add bats integration tests (9 tests)
- Add documentation

- Detects `<<<<<<<`, `=======`, and `>>>>>>>` markers
- Ignores markers in middle of lines
- Exit code 1 if conflicts found, 0 if clean

All tests passing (243 total).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@jdx jdx force-pushed the feat/util-check-merge-conflict branch from f92b115 to 2104f85 Compare October 3, 2025 16:11
@jdx jdx merged commit 6e966b1 into main Oct 3, 2025
6 checks passed
@jdx jdx deleted the feat/util-check-merge-conflict branch October 3, 2025 16:15
@jdx jdx mentioned this pull request Oct 3, 2025
jdx added a commit that referenced this pull request Oct 5, 2025
## [1.17.0](https://github.com/jdx/hk/compare/v1.16.0..v1.17.0) -
2025-10-05

### 🚀 Features

- Add hk util trailing-whitespace command by
[@jdx](https://github.com/jdx) in
[#319](#319)
- add mixed_line_ending builtin by [@jdx](https://github.com/jdx) in
[#324](#324)
- add check_symlinks builtin by [@jdx](https://github.com/jdx) in
[#326](#326)
- add check_executables_have_shebangs builtin by
[@jdx](https://github.com/jdx) in
[#325](#325)
- Add check-merge-conflict util command and builtin by
[@jdx](https://github.com/jdx) in
[#322](#322)
- add check_case_conflict builtin by [@jdx](https://github.com/jdx) in
[#323](#323)
- add detect_private_key builtin by [@jdx](https://github.com/jdx) in
[#332](#332)
- add check_added_large_files builtin by [@jdx](https://github.com/jdx)
in [#329](#329)
- add python_debug_statements builtin by [@jdx](https://github.com/jdx)
in [#331](#331)
- add python_check_ast builtin by [@jdx](https://github.com/jdx) in
[#330](#330)
- add no_commit_to_branch builtin by [@jdx](https://github.com/jdx) in
[#333](#333)
- add check_byte_order_marker and fix_byte_order_marker builtins by
[@jdx](https://github.com/jdx) in
[#328](#328)
- add regex pattern support for glob and exclude by
[@jdx](https://github.com/jdx) in
[#336](#336)
- automatically batch large file lists to prevent ARG_MAX errors by
[@jdx](https://github.com/jdx) in
[#338](#338)

### 🐛 Bug Fixes

- Add validation for stage attribute requiring fix command by
[@jdx](https://github.com/jdx) in
[#327](#327)
- display stderr when check_list_files returns empty list by
[@jdx](https://github.com/jdx) in
[#334](#334)
- added new builtins to Builtins.pkl by [@jdx](https://github.com/jdx)
in
[b8a2b17](b8a2b17)
- enable experimental settings in mise.toml for swift support by
[@jdx](https://github.com/jdx) in
[#342](#342)
- correct airflow migration test to expect local imports by
[@jdx](https://github.com/jdx) in
[#343](#343)
- make final CI check always run and fail if dependencies fail by
[@jdx](https://github.com/jdx) in
[#344](#344)
- add ruff format to ruff builtin by [@jdx](https://github.com/jdx) in
[#340](#340)

### 🚜 Refactor

- Split util module into separate files by
[@jdx](https://github.com/jdx) in
[#321](#321)

### 🛡️ Security

- migrate pre-commit by [@jdx](https://github.com/jdx) in
[#318](#318)

### 🔍 Other Changes

- split CI runs into parallel jobs and add docs-sync mise task by
[@jdx](https://github.com/jdx) in
[#337](#337)
- remove v0 pkl files from docs/public by [@jdx](https://github.com/jdx)
in [#341](#341)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Release 1.17.0 with new migrate command, many util subcommands,
refreshed docs, and dependency updates.
> 
> - **Version**: bump `hk` to `1.17.0` (Cargo.toml, usage specs, docs).
> - **CLI**:
> - **New Command**: `migrate pre-commit` with flags (`--config`,
`--output`, `--force`, `--hk-pkl-root`).
> - **Util Subcommands**: add `check-added-large-files`,
`check-byte-order-marker`, `fix-byte-order-marker`,
`check-case-conflict`, `check-executables-have-shebangs`,
`check-merge-conflict`, `check-symlinks`, `detect-private-key`,
`end-of-file-fixer`, `mixed-line-ending`, `no-commit-to-branch`,
`python-check-ast`, `python-debug-statements`, `trailing-whitespace`.
> - **Docs**:
> - Update `docs/cli/index.md`, regenerate `docs/cli/commands.json`, and
`hk.usage.kdl`.
>   - Split `util` docs into per-command pages and add `migrate` docs.
> - **Dependencies**: update `Cargo.lock` crate versions and set `hk`
crate version to `1.17.0`.
> - **Changelog**: add `CHANGELOG.md` entry for `1.17.0` with
features/bug fixes.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
75b972a. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: mise-en-dev <[email protected]>
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