استفاده از کنترل از راه دور 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 آزمایش کردم:
- افزودن فورک Kannav به عنوان یک کنترل از راه دور
git remote add
افزودن یک کنترل از راه دور – اتصال مخزن محلی شما به مخزن راه دور دیگر، به شما امکان می دهد با آن تعامل داشته باشید. افزودن چندین کنترل از راه دور به شما امکان می دهد از منابع مختلف واکشی و به آنها فشار دهید.
- واکشی کد از ریموت جدید
git fetch
واکشی به شما امکان میدهد تا commitها و شاخهها را از مخزن راه دور بدون ادغام آنها در مخزن محلی خود بازیابی کنید، و به شما راهی میدهد تا کد مشارکتکننده را بدون به هم زدن کد خود دانلود کنید.
3 – راه اندازی شعبه ردیابی
git checkout -b /
راهاندازی یک شعبه ردیابی به من کمک کرد تا تغییراتی را که Kannav در شعبه اختصاصی Fork of my repo انجام میداد آزمایش، بررسی و پیگیری کنم.
با استفاده از git remote
و git fetch
به من کمک کرد تا روند همکاری را ساده کنم. بهجای اینکه مجبور باشم کل فورک را شبیهسازی کنم تا با تغییرات جاری هماهنگ باشم (رویکرد قبلی من)، به سادگی میتوانم مخزن راه دور را اضافه کنم و در صورت نیاز بهروزرسانیها را واکشی کنم.
افکار بعدی
آزمایشگاه این هفته به طرز شگفت انگیزی بدون مشکل پیش رفت. اگرچه من در ابتدا در مورد استفاده عصبی بودم git fetch
برای اولین بار، من از اینکه چقدر راحت فرآیند آزمایش را انجام داد، شگفت زده شدم.