bug: PushMD - path conflict on duplicate slug for posts in draft
まだ誰も着手していません。
評価
調査の方向性
class-push-md-plugin.php の export_wordpress_content() から始め、投稿がどのようにリポジトリの Markdown パスになるかを確認します。次に ExportPathTest.php を調べ、同じ slug を共有する複数の下書きまたは保留中の投稿について、公開済み投稿の優先順位を含むテストカバレッジを追加します。エクスポートがパスの衝突なしに完了し、重複したエントリが ID ベースのフォールバックパスを使用すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
WordPress allows multiple non-published posts (e.g. draft, pending) to share the exact same post_name slug (e.g., my-draft-post). When exporting via Git (git clone / git fetch), PushMD attempts to write both posts to post/my-draft-post.md, causing a file path collision exception: Git export rejected because multiple WordPress entities map to the same PushMD path.
We can disambiguate duplicate slug collisions during export by falling back to ID-based paths (e.g., post/post-202.md) for colliding entries (giving published posts priority).
Proposed Changes
Push MD Plugin
[MODIFY] class-push-md-plugin.php
Update export_wordpress_content() to handle slug collisions gracefully.
Sort posts during export prioritize published posts before draft/pending/private posts.
When two or more posts resolve to the exact same repository markdown path, assign the human-readable slug path to the primary post and fallback to build_id_fallback_markdown_path($post) (post/post-.md or page/page-.md) for duplicate entries.
[MODIFY] ExportPathTest.php
Add unit tests verifying that multiple draft posts with identical slugs export cleanly without throwing exceptions, using ID fallback paths for duplicates.
- 主要言語
- PHP
- スター
- 22
- フォーク
- 5
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Automattic/php-toolkit のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
Automattic/php-toolkit#89 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
Automattic/php-toolkit#102 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
Automattic/php-toolkit#91 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
Automattic/php-toolkit#88 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
Automattic/php-toolkit#87 ·
Automattic/php-toolkit の issue をすべて見る
似ている issue
-
Solved site promotion gate fails on runner PHP patch drift (expects 8.2.33, runner installs 8.2.34) オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
Automattic/blocks-engine#2161 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
Automattic/static-site-importer#1824 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
0. Needs triage bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
0. Needs triage 35-feedback bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100