
> Jujutsu v0.46 تحت المجهر: ما الذي تغيّر ومن ينبغي أن يتحرك▋
قراءة ثانية لـ jj بعد أسبوعين: الإصدار v0.46.0 يقدّم التسكن عبر worktrees، والسجل كسب 216 نجمة، وفجوة التراجع اتّسعت. ما تغيّر، ما ينكسر، من يتحرك.
mrsaynothing· 13 أكتوبر 2026· 6 دقيقة قراءة آخر اختبار 2026-10-13
قبل أسبوعين قرأ هذا الموقع سجل jj أول مرة وسمّاه زر التراجع الذي وُلد git بلا منه — 31 796 نجمة، إصدارات شهرية، سجل عمليات واحد. اليوم القراءة الثانية: 32 012 نجمة (+216 في الأسبوعين)، صدر v0.46.0 قبل ستة أيام، والمستودع دُفع الساعة 05:22 UTC من صباح اليوم، قبل أن تُشعَل الغلاية.
سطر الصدق، كما في المرة السابقة: قرأت السجل، لم أشغّل الأداة. كل ما يلي يأتي من ملاحظات إصدار v0.46.0، والسجل العام للمستودع، وقراءتنا الأولى. ما تضيفه القراءة الثانية هو ما لا تستطيع الأولى امتلاكه: الفارق. أسبوعان من الإصدارات، أسبوعان من النجوم، أسبوعان من بيانات بحثنا الخاصة تتراكم خلف السؤال نفسه.
والكذبة التي يرفضها هذا المقال: أن يكون رقم الإصدار خبرًا. معظم الإصدارات الثانوية سباكة. v0.46.0 ليست كذلك — إنها تغيّر حساب التحويل، وبيانات الطلب خلال الأسبوعين تفسّر لماذا يهم هذا أكثر مما يعترف به changelog.
ما الذي تغيّر في Jujutsu v0.46؟ مساحات العمل يمكنها الآن التسكن عبر worktrees حقيقية لـ git (
jj workspace add --colocate)، ويرفضjj undo/jj redoافتراضيًا العمليات العابرة لمساحات العمل، ويتحققjj bisect runمن نقطتيه، وارتفع الحد الأدنى لـ git إلى 2.42.0. المستودعات المتسكنة تبقى git عاديًا أمام GitHub والزملاء.
سجل الأسبوعين
الأرقام أولًا، فهي الجزء الوحيد من هذا المقال الذي لا يستطيع أحد مناقشته.
| القياس | القراءة الأولى (29 سبتمبر) | القراءة الثانية (13 أكتوبر) |
|---|---|---|
| نجوم GitHub | 31 796 | 32 012 (+216 / 14 يومًا ≈ 15/يوم) |
| آخر إصدار | v0.45.1 (3 سبتمبر) | v0.46.0 (7 أكتوبر — فجوة 34 يومًا) |
| آخر دفع للمستودع | نشط | 05:22 UTC اليوم |
| العلل المفتوحة | — | 1 260 |
النجوم غرور، والإيقاع إشارة: إصداران في ستة أسابيع مع كسور مذكورة بأمانة — مشروع يسلّم ويقول لك ما كسره. والـ 1 260 علة مفتوحة تُقرأ بالطريقة نفسها — أداة متحركة، لا أداة منتهية.
وسجلّنا الخاص يحمل الإشارة الثانية. أكبر عائلة ظهورات في عنقود git هذا الشهر ما زالت التراجع عن commit مع الإبقاء على التغييرات — ظهورات +100% أسبوعًا بعد أسبوع، ونقرات تكاد تكون صفرًا، لأن الجواب الصادق في git على عمق ثلاث أوامر والقراء يشعرون بذلك. الطلب على التراجع لم ينتظر jj. وهو لا ينتظر أبدًا.
Jujutsu مقابل git: جدول التراجع
القراءة الأولى شرحت النموذج — نسخة العمل commit، وكل عملية تُكتب في سجل العمليات، والتعارضات مواطنة من الدرجة الأولى. ما تجاوزته، وما تقول بيانات البحث إن الناس يحتاجونه فعلًا في السادسة صباحًا، هو الجدول على مستوى العبارات: المهمة، مكتوبة كما يكتبها الباحثون، باللهجتين معًا.
| المهمة | git (التعويذة) | jj (العملية) |
|---|---|---|
| تراجع عن آخر شيء فعلته | الـ reflog، عينان مريقتان، reset --soft أو reset --keep | jj undo |
| تراجع عن التراجع | لا طريق نظيف | jj redo |
| انظر ما حدث للتو | git reflog | jj op log |
| عدّل آخر commit | git commit --amend | حرّر الملفات — commit نسخة العمل يعدّل نفسه |
| أجّل تعارضًا إلى لاحقًا | غير مسموح — احلّه الآن أو توقّف | التعارضات commits؛ حلّها متى شئت |
في git، التراجع علم آثار — انقب في الـ reflog، جد الشظية، أعد البناء. في jj، الشريط لم يُدفن قط: التراجع عملية على سجل العمليات. تنقيب مقابل زر إرجاع.
تخيّل: git يمنحك مسجّل الرحلة — مثبّتًا خلف الطائرة، يُقرأ بعد التحطم. jj ثبّته على لوحة القيادة وشبكه بزر إرجاع.
v0.46.0: التغييران المهمان
مساحات عمل تتسكن عبر worktrees حقيقية لـ git. jj workspace add --colocate (أو إعداد git.colocate) يضع مساحة عمل jj بجوار checkout عادي لـ git دون أن يستحوذ على النسخة. اقرأها كتوسعة منحدر الدخول: يمكن لفريق أن يشغّل مساحة عمل jj إلى جوار checkout لـ git على الجهاز نفسه، والمستودع نفسه، ويقارن — وهي بالضبط التجربة التي طالب بها حكم القراءة الأولى. يستند إلى git worktree add --orphan، ولهذا ارتفع الحد الأدنى لـ git إلى 2.42.0.
تراجع يعرف حدوده. يرفض jj undo وjj redo الآن لمس عمليات مساحة عمل أخرى ما لم تمرر --allow-cross-workspace. أداة حجتها كلها أن «التراجع آمن» تشدّ الحواجز حول التراجع — اختبار الثقافة ناجح. وبقية الملاحظات تُقرأ بالطريقة نفسها: jj bisect run يتحقق من نقطتي النهاية قبل السير، وjj split توقّف المراوغة بين جلسات المحرر.
جرّب المسجّل بلا أي مخاطرة
في نسخة مستنسخة للاستخدام مرة واحدة، شغّل jj git init --colocate — يظهر مجلد .jj بجوار .git، ويواصل git العمل كما كان تمامًا، ويعرض jj op log المسجّل وهو يعمل. لا شيء يتغير على جهة git؛ وباب الخروج هو rm -rf .jj.
تحقق: jj op log في تلك النسخة يسرد عملياتك بأختام زمنية — سطر لكل أمر يعني أن السجل حقيقي على جهازك، لا في الوثائق فحسب.
الدفتر الصادق: ما الذي ينكسر
الذاكرة العضلية، أولًا. رقصة الفهرس — git add -p، التجهيز الجزئي — تُقابل بـ squash وsplit في jj، تحلّان المشكلة نفسها بأيادٍ أخرى. في أسبوعك الأول ستكتب أفعال git وستتضايق.
انطباع الفريق، ثانيًا. المستودعات المتسكنة تبدو git عاديًا للاستضافة وللزملاء — لكن commits نسخة العمل لمستخدم jj لا تصبح مرئية إلا عند الدفع، وسؤال «أين عملي الناقص؟» يجيب بإجابة مختلفة عما يتوقعه أهل git. الفرق الصغيرة تهزّ كتفيها؛ والمستودعات أحادية الشيفرة ذات الأدوات العميقة عليها الانتظار. رفض التراجع عبر مساحات العمل في v0.46 حدّ إضافي يُتعلَّم — عن قصد، وبصدق، القرار الصحيح.
والإيصال الذي ما زال غائبًا: قياسات الأداء. بعد قراءتين، ما زالت الدعوى غير مرفوعة. لا أستطيع أن أقول لك إن rebase في jj يتفوق على git في مستودع من 10 000 commit، لأنني لم أشغّله — هذا الرقم لا وجود له قبل وجود القياس، والقراءة الثانية لا تحوّل قراءة سجل إلى قياس.
الحكم، منقّحًا: من ينبغي أن يتحرك هذا الأسبوع
قالت القراءة الأولى: جرّبه. أسبوعان وإصدار واحد لاحقًا، تحرّك الحساب في اتجاه واحد — خفّضت التسكن عبر worktrees في v0.46 كلفة التجربة نفسها، وتصلّبت بيانات الطلب. عائلة التراجع التي تتابعها لوحتنا لم تبرد ظهورة واحدة؛ والأداة التي تجيب عنها بأمر واحد سلّمت مرتين. حين تظل الفجوة بهذا الاتساع تتوسع، فلسيأتي من يسدّها. jj يسدّها على مستوى النموذج، لا مستوى القاعدة الذهنية — المقارنة الكاملة في عنقود git-undo، بجوار القرار الكلاسيكي الذي يزعزعه: revert vs reset، الذي صار له جواب ثالث، والجواب الثالث زر.
تحرك الآن: المطورون المنفردون والفرق الصغيرة ذات ندوب التراجع؛ وكل من يعلّم git وسئم رؤية الوجوه تسقط عند الـ reflog؛ و— المسار الذي نراقبه عن كثب — المستودعات المُدارة بالوكلاء، حيث ينبغي لكل عملية أن تكون عكوسة وقابلة للتدقيق افتراضيًا. سجل العمليات هناك ليس ترفًا؛ إنه سطح التدقيق الذي لم يسلّمه git قط.
انتظر: سلاسل أدوات git العميقة، وافتراضات CI المثقلة بالـ hooks، ومن في بوادر الهجرة. وانتظر القياس — سيُواجه المقال القادم عن jj في هذا الموقع jj بـ git على مستودع حقيقي ويطبع أقبح رقم أولًا، لأن سجل الأسبوعين اشترى حسن الظن مرة واحدة بالضبط.
سؤالان قبل ذلك القياس: هل خذلك إنقاذ بالـ reflog في أسوأ لحظة ممكنة — وإذا شغّلت jj على محمل الجد هذا الشهر، فما الذي ينكسر أولًا؟ التعليقات مفتوحة؛ أخبرنا بما يجب اختباره.
$ مقالات ذات صلة · git undo
هل يمكن تشغيل vLLM على ويندوز؟ نعم — عبر WSL2
هل يمكن تشغيل vLLM على ويندوز؟ ليس أصلاً — الوثائق الرسمية تذكر نظامًا واحدًا: لينكس. طريق WSL2 الذي يعمل فعلًا، ضريبة الشوكة لتجاوزه، ومتى يكون Ollama هو الجواب الصادق.
2026-10-12 · 5 دقيقة قراءة

Jujutsu vs Git: the Undo Button Git Never Had
jj-vcs/jj read from its public record: 31,796 stars, monthly releases, conflicts stored in history — and one operation log that out-undos git.
2026-09-29 · 5 دقيقة قراءة

Git Undo Generator: the Exact Command for Your Mess
Answer three questions — pushed or not, keep or discard, shared or solo — and the git undo generator hands you the exact reset, revert or reflog command.
2026-09-25 · 4 دقيقة قراءة

My Agent Shipped a Post I Gated. It Stayed Live for a Day.
Three batch commits swept a gated post onto this live site. What broke, why globs did it, and the two checks that now run after every deploy.
2026-09-24 · 5 دقيقة قراءة
