برنامه نویسی

استفاده از کنترل از راه دور Git برای همکاری

Summarize this content to 400 words in Persian Lang
با این حال یک هفته دیگر از کاوش در ویژگی های مختلف Git در دوره توسعه منبع باز به پایان می رسد.

ما به مشارکت در پروژه های همتایان خود بازگشتیم، اما این بار، علاوه بر ایجاد درخواست های کششی، مجبور شدیم از git fetch و git remote برای آزمایش مشارکت های همکلاسی هایمان و ردیابی آنها در طول فرآیند اجرا.

افزودن یک ویژگی جدید به DialectMorph

این هفته، من روی افزودن یک ویژگی جدید به ابزار ترجمه کد CLI به نام DialectMorph کار کردم. این ویژگی پشتیبانی از پیکربندی تنظیمات پیش‌فرض ابزار CLI را با استفاده از a .toml فایلی که در فهرست اصلی کاربر قرار دارد. (جزئیات بیشتر را می توانید در اینجا بیابید: شماره 24).

من تقریباً بلافاصله با استفاده از یک ویژگی درخواست کشش پیش نویس (درخواست کشش من) یک درخواست کشش برای این مشکل ایجاد کردم.

توجه: درخواست‌های کشش پیش‌نویس به توسعه‌دهندگان اجازه می‌دهد تا کار خود را قبل از آماده شدن برای ادغام به اشتراک بگذارند و بازخورد و همکاری اولیه را تقویت کنند.

برای پیاده سازی عملکرد جدید، یک تابع کمکی را اضافه کردم که به بارگذاری گزینه های پیکربندی از فایل .toml اختصاص دارد (TOML – کتابخانه که برای تجزیه محتوای فایل استفاده می شود):

// helper function to load and parse a TOML config file
export function loadTomlConfigFile(
configFileName: string = “dialectMorph.config.toml”,
) {
const homeDir = os.homedir();
const configFilePath = path.resolve(homeDir, configFileName);

if (!fs.existsSync(configFilePath)) {
return {};
}

const fileContents = fs.readFileSync(configFilePath, “utf-8”);
// parse contents of the config file
const config = toml.parse(fileContents);

return config;
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس تابع اصلی را تغییر دادم تا ابتدا محتویات فایل پیکربندی را با استفاده از تابع کمکی بارگیری کنم و آن تنظیمات پیش‌فرض را با آرگومان‌های CLI ادغام کنم (اولویت دادن به گزینه‌های CLI):

let config = {};
try {
// load tool settings from the user’s home directory
config = loadTomlConfigFile();
} catch (e) {
console.error(`Error trying to load config file: ${e}`);
}

// merge CLI options with config file options (CLI options take precedence)
const mergedOptions = {
…config,
…options,
};

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

آخرین مرحله، اضافه کردن اطلاعات مربوط به ویژگی جدید به آن بود README.md. و همینطور روابط عمومی من آماده بررسی بود.

خوشبختانه، مالک مخزن از مشارکت من راضی بود، بنابراین فوراً ادغام شد (بدون اینکه مجبور باشم تغییراتی را در تغییرات پیشنهادی انجام دهم).

آزمایش مشارکت شخصی با استفاده از کنترل از راه دور git و git fetch

اکنون، بیایید به هیجان‌انگیزترین بخش فعالیت این هفته برویم: بررسی و آزمایش عملکرد مشابهی که در پروژه من با استفاده از کنترل‌های راه دور Git اجرا شده است.

شریک آزمایشگاه من: Kannav02 درخواست کشش او: درخواست کشش شماره 9

چگونه کد Kannav را به صورت محلی با استفاده از Git آزمایش کردم:

افزودن فورک Kannav به عنوان یک کنترل از راه دور

git remote add

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

افزودن یک کنترل از راه دور – اتصال مخزن محلی شما به مخزن راه دور دیگر، به شما امکان می دهد با آن تعامل داشته باشید. افزودن چندین کنترل از راه دور به شما امکان می دهد از منابع مختلف واکشی و به آنها فشار دهید.

واکشی کد از ریموت جدید

git fetch

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

واکشی به شما امکان می‌دهد تا commit‌ها و شاخه‌ها را از مخزن راه دور بدون ادغام آن‌ها در مخزن محلی خود بازیابی کنید، و به شما راهی می‌دهد تا کد مشارکت‌کننده را بدون به هم زدن کد خود دانلود کنید.

3 – راه اندازی شعبه ردیابی

git checkout -b /

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

راه‌اندازی یک شعبه ردیابی به من کمک کرد تا تغییراتی را که Kannav در شعبه اختصاصی Fork of my repo انجام می‌داد آزمایش، بررسی و پیگیری کنم.

با استفاده از git remote و git fetch به من کمک کرد تا روند همکاری را ساده کنم. به‌جای اینکه مجبور باشم کل فورک را شبیه‌سازی کنم تا با تغییرات جاری هماهنگ باشم (رویکرد قبلی من)، به سادگی می‌توانم مخزن راه دور را اضافه کنم و در صورت نیاز به‌روزرسانی‌ها را واکشی کنم.

افکار بعدی

آزمایشگاه این هفته به طرز شگفت انگیزی بدون مشکل پیش رفت. اگرچه من در ابتدا در مورد استفاده عصبی بودم git fetch برای اولین بار، من از اینکه چقدر راحت فرآیند آزمایش را انجام داد، شگفت زده شدم.

با این حال یک هفته دیگر از کاوش در ویژگی های مختلف Git در دوره توسعه منبع باز به پایان می رسد.

ما به مشارکت در پروژه های همتایان خود بازگشتیم، اما این بار، علاوه بر ایجاد درخواست های کششی، مجبور شدیم از git fetch و git remote برای آزمایش مشارکت های همکلاسی هایمان و ردیابی آنها در طول فرآیند اجرا.

افزودن یک ویژگی جدید به DialectMorph

این هفته، من روی افزودن یک ویژگی جدید به ابزار ترجمه کد CLI به نام DialectMorph کار کردم. این ویژگی پشتیبانی از پیکربندی تنظیمات پیش‌فرض ابزار CLI را با استفاده از a .toml فایلی که در فهرست اصلی کاربر قرار دارد. (جزئیات بیشتر را می توانید در اینجا بیابید: شماره 24).

من تقریباً بلافاصله با استفاده از یک ویژگی درخواست کشش پیش نویس (درخواست کشش من) یک درخواست کشش برای این مشکل ایجاد کردم.

توجه: درخواست‌های کشش پیش‌نویس به توسعه‌دهندگان اجازه می‌دهد تا کار خود را قبل از آماده شدن برای ادغام به اشتراک بگذارند و بازخورد و همکاری اولیه را تقویت کنند.

برای پیاده سازی عملکرد جدید، یک تابع کمکی را اضافه کردم که به بارگذاری گزینه های پیکربندی از فایل .toml اختصاص دارد (TOML – کتابخانه که برای تجزیه محتوای فایل استفاده می شود):



// helper function to load and parse a TOML config file
export function loadTomlConfigFile(
  configFileName: string = "dialectMorph.config.toml",
) {
  const homeDir = os.homedir();
  const configFilePath = path.resolve(homeDir, configFileName);

  if (!fs.existsSync(configFilePath)) {
    return {};
  }

  const fileContents = fs.readFileSync(configFilePath, "utf-8");
  // parse contents of the config file
  const config = toml.parse(fileContents);

  return config;
}


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس تابع اصلی را تغییر دادم تا ابتدا محتویات فایل پیکربندی را با استفاده از تابع کمکی بارگیری کنم و آن تنظیمات پیش‌فرض را با آرگومان‌های CLI ادغام کنم (اولویت دادن به گزینه‌های CLI):



let config = {};
try {
  // load tool settings from the user's home directory
  config = loadTomlConfigFile();
} catch (e) {
  console.error(`Error trying to load config file: ${e}`);
}

// merge CLI options with config file options (CLI options take precedence)
const mergedOptions = {
  ...config,
  ...options,
};


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

آخرین مرحله، اضافه کردن اطلاعات مربوط به ویژگی جدید به آن بود README.md. و همینطور روابط عمومی من آماده بررسی بود.

خوشبختانه، مالک مخزن از مشارکت من راضی بود، بنابراین فوراً ادغام شد (بدون اینکه مجبور باشم تغییراتی را در تغییرات پیشنهادی انجام دهم).

آزمایش مشارکت شخصی با استفاده از کنترل از راه دور git و git fetch

اکنون، بیایید به هیجان‌انگیزترین بخش فعالیت این هفته برویم: بررسی و آزمایش عملکرد مشابهی که در پروژه من با استفاده از کنترل‌های راه دور Git اجرا شده است.

شریک آزمایشگاه من: Kannav02
درخواست کشش او: درخواست کشش شماره 9

چگونه کد Kannav را به صورت محلی با استفاده از Git آزمایش کردم:

  1. افزودن فورک Kannav به عنوان یک کنترل از راه دور


git remote add  


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

افزودن یک کنترل از راه دور – اتصال مخزن محلی شما به مخزن راه دور دیگر، به شما امکان می دهد با آن تعامل داشته باشید. افزودن چندین کنترل از راه دور به شما امکان می دهد از منابع مختلف واکشی و به آنها فشار دهید.

  1. واکشی کد از ریموت جدید


git fetch 


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

واکشی به شما امکان می‌دهد تا commit‌ها و شاخه‌ها را از مخزن راه دور بدون ادغام آن‌ها در مخزن محلی خود بازیابی کنید، و به شما راهی می‌دهد تا کد مشارکت‌کننده را بدون به هم زدن کد خود دانلود کنید.

3 – راه اندازی شعبه ردیابی



git checkout -b  /


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

راه‌اندازی یک شعبه ردیابی به من کمک کرد تا تغییراتی را که Kannav در شعبه اختصاصی Fork of my repo انجام می‌داد آزمایش، بررسی و پیگیری کنم.

با استفاده از git remote و git fetch به من کمک کرد تا روند همکاری را ساده کنم. به‌جای اینکه مجبور باشم کل فورک را شبیه‌سازی کنم تا با تغییرات جاری هماهنگ باشم (رویکرد قبلی من)، به سادگی می‌توانم مخزن راه دور را اضافه کنم و در صورت نیاز به‌روزرسانی‌ها را واکشی کنم.

افکار بعدی

آزمایشگاه این هفته به طرز شگفت انگیزی بدون مشکل پیش رفت. اگرچه من در ابتدا در مورد استفاده عصبی بودم git fetch برای اولین بار، من از اینکه چقدر راحت فرآیند آزمایش را انجام داد، شگفت زده شدم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا