رفتن به محتوا

افزودن مخزن به فضای کاری

این راهنما نشان می‌دهد چگونه یک چک‌اوت Git را در یک فضای کاری ثبت کنید، دوباره ایندکسش کنید و دوباره برداریدش.

مخزن‌ها محدود به فضای کاریاند. فهرست سراسری و مرحلهٔ پیونددادن وجود ندارد: افزودن یک مخزن و گذاشتنش در یک فضای کاری همان یک کارند. همان چک‌اوت اگر در دو فضای کاری ثبت شود، به دو سطر مستقل با دو شناسهٔ متفاوت تبدیل می‌شود — در میان فضاهای کاری، هویت یک مخزن مسیرش روی فایل‌سیستم است، هرگز شناسه‌اش.

یک پوشه تنها وقتی ثبت می‌شود که هر سه شرط زیر برقرار باشد:

  1. درون یک work tree از git قرار دارد.
  2. آن work tree یک remote origin دارد.
  3. آن remote origin به یک میزبان کد پشتیبانی‌شده اشاره می‌کند: github.com، gitlab.com یا bitbucket.org.

هر چیز دیگری هنگام ثبت با پیامی صریح رد می‌شود: “Folder is not inside a git work tree.”، “No origin remote configured for this repository.”، یا “The origin remote is not hosted on a supported forge (github.com, gitlab.com, bitbucket.org).”. حالت فقط‌محلی وجود ندارد.

میزبان کد از remote خوانده و روی مخزن ذخیره می‌شود — هرگز خودتان آن را انتخاب نمی‌کنید. یک فضای کاری می‌تواند هم‌زمان مخزن‌هایی از هر سه داشته باشد و با هرکدام از طریق API خودش و با اعتبارنامهٔ خودش صحبت می‌شود. فضای‌نام‌های تودرتوی GitLab حفظ می‌شوند، پس gitlab.com/group/subgroup/project با مالک group/subgroup و نام project ثبت می‌شود.

پوشه همچنین باید روی ماشینی باشد که cc_server را میزبانی می‌کند، درون یکی از پوشه‌های --repo-roots آن سرور. این فهرست مجاز به‌طور پیش‌فرض پوشهٔ خانهٔ کاربر سرور است و پیمایش بالاتر از یک ریشه رد می‌شود.

  1. تنظیمات → فضای کاری → مخزن‌ها را باز کنید (/workspaces/<id>/settings/workspace/repositories).
  2. روی افزودن مخزن کلیک کنید.

این پنجره یک مرورگر پیمایش‌پذیر روی فایل‌سیستم سرور است، نه فایل‌سیستم شما. این جریان روی دسکتاپ، وب و تلفن یکسان است، چون یک انتخابگر پوشهٔ بومی پوشه‌ای روی ماشین اشتباه انتخاب می‌کرد.

  1. درون ریشه‌های پیکربندی‌شدهٔ سرور پیمایش کنید. پوشه‌هایی که چک‌اوت git هستند علامت می‌خورند.
  2. هر تعداد از آن‌ها را تیک بزنید. انتخاب هنگام پیمایش پایدار می‌ماند، پس می‌توانید چک‌اوت‌هایی از چند پوشه جمع کنید.
  3. همه را در یک دسته ثبت کنید.

یک انتخاب ناموفق هرگز بقیهٔ دسته را حذف نمی‌کند — شناسه‌هایی که ساخته شده‌اند را می‌گیرید، به‌همراه یک خطای به‌ازای‌هر‌مسیر برای هر موردی که رد شده است. ثبت دوبارهٔ مسیری که از قبل در این فضای کاری هست، مخزن موجود را برمی‌گرداند نه یک رونوشت تکراری.

هر مخزن ثبت‌شده در فهرست با owner/name، نشانی که میزبان کدش را نام می‌برد و مسیرش روی سرور ظاهر می‌شود. مخزن‌های GitHub آواتار مالک را هم نشان می‌دهند؛ میزبان‌های کد دیگر URL قابل‌حدسی برای آواتار مالک ندارند، پس به حرف اول نام برمی‌گردند.

نشان میزبان کد در یک فضای کاری مختلط مهم است: دو مخزن می‌توانند روی میزبان‌های کد متفاوت هر دو acme/web نام داشته باشند و رفتارشان فرق می‌کند — اینکه یک بازبینی چه می‌تواند بکند و یک پیوند به کجا می‌رود.

ثبت، رویداد RepoAdded محدود به این فضای کاری را راه می‌اندازد که پایپ‌لاین index_code را برای آن چک‌اوت شروع می‌کند. همین است که گراف کد را پر می‌کند تا جستجو و تحلیل اثر چیزی برای پاسخ دادن داشته باشند.

فقط فایل‌هایی ایندکس می‌شوند که زبانشان گرامر همراه دارد (Dart، JavaScript، TypeScript، TSX، PHP، Python، Rust، Zig، C، C++، Go، Java، Ruby، C#، Swift، Kotlin، R، Assembly، MATLAB و Ada). جستجوی کد با گراف کد را ببینید.

هر سطر یک دکمهٔ ایندکس کد دارد. رویش کلیک کنید تا ایندکسر برای آن چک‌اوت دوباره اجرا شود؛ تا وقتی اجرا می‌شود، دکمه به نمایشگر پیشرفت تبدیل می‌شود که فایل‌های انجام‌شده از کل را نشان می‌دهد، با یک کنترل لغو. وقتی تمام شد، به یک تیک همراه با تعداد نماد می‌رسد، یا اگر اجرا ناموفق بوده به یک هشدار.

دستهٔ هر سطر را بکشید. ترتیبی که می‌گذارید همان ترتیبی است که هر فهرست مخزن در برنامه بازمی‌خواند.

آیکون پیوند روی یک سطر، ویرایشگری برای مالک GitHub و نام مخزن آن باز می‌کند — وقتی remote تغییر نام داده یا منتقل شده مفید است.

  1. تنظیمات → فضای کاری → مخزن‌ها را باز کنید.
  2. روی آیکون سطل زباله در سطر کلیک کنید.
  3. «مخزن از فضای کاری برداشته شود؟» را تأیید کنید.

پنجره می‌گوید چه می‌کند: «name از این فضای کاری برداشته می‌شود. فایل‌های محلی روی دیسک دست نخورده می‌مانند.»

برداشتن، سطر مخزن را از این فضای کاری حذف می‌کند و سطرهای گراف کد آن را آبشاری پاک می‌کند — نمادها، یال‌ها، فایل‌ها و نقاط بازرسی ایندکس — به‌همراه هر مجوز مخزن به‌ازای هر عضو روی آن، پیوندهای فضا‌مخزنش و رکوردهای چک‌اوت ایزوله‌اش. همان چک‌اوت که در فضای کاری دیگری ثبت شده، سطری مستقل است و دست نمی‌خورد. worktreeهای روی دیسک که این رکوردها به آن‌ها اشاره داشتند با این حذف تخریب نمی‌شوند.