HG(PUSH) HG(PUSH)

hg-push - ارسال تغییرات و کامیت‌ها به مخزن مقصد در Mercurial

hg push [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]...

ارسال مجموعه تغییرات (changesets) از مخزن محلی به مقصد مشخص‌شده.

این عملیات متقارن با دستور pull است: دقیقاً مشابه اجرای یک pull در مخزن مقصد از مخزن فعلی است.

به‌طور پیش‌فرض، push اجازهٔ ایجاد سرشاخه‌های (heads) جدید در مقصد را نمی‌دهد، زیرا وجود چند سرشاخه مشخص نمی‌کند که از کدام سرشاخه باید استفاده شود. در این شرایط، توصیه می‌شود پیش از ارسال، عملیات دریافت (pull) و ادغام (merge) را انجام دهید.

در صورتی که می‌خواهید اجازه دهید push یک شاخهٔ نام‌گذاری‌شدهٔ جدید ایجاد کند که در مقصد وجود ندارد، از گزینهٔ --new-branch استفاده کنید. این گزینه به شما امکان می‌دهد تنها یک شاخهٔ جدید ایجاد کنید بدون اینکه سایر تغییرات را به‌اجبار بفرستید.

نکته (Note)
هنگام استفاده از گزینهٔ -f/--force باید احتیاط بیشتری به خرج داد؛ این گزینه تمام سرشاخه‌های جدید را در تمامی شاخه‌ها ارسال می‌کند، اقدامی که تقریباً همیشه باعث سردرگمی همکاران پروژه می‌شود.

اگر از -r/--rev استفاده شود، بازبینی (revision) مشخص‌شده و تمام نیاکان آن به مخزن راه دور ارسال خواهند شد.

اگر از -B/--bookmark استفاده شود، بازبینی دارای بوک‌مارک مشخص‌شده، نیاکان آن و خود بوک‌مارک به مخزن راه دور ارسال می‌شوند. تعیین . معادل با مشخص کردن نام بوک‌مارک فعال است. برای ارسال تمام بوک‌مارک‌های فعلی از گزینهٔ --all-bookmarks استفاده کنید.

لطفاً برای جزئیات مهم دربارهٔ نشانی‌های ssh:// به hg help urls مراجعه کنید. اگر DESTINATION مشخص نشود، از مسیر پیش‌فرض استفاده خواهد شد.

هنگامی که چند مقصد ارسال مشخص شود، push آن‌ها را یکی پس از دیگری پردازش می‌کند، اما در صورت بروز خطا متوقف می‌شود.

گزینهٔ --pushvars رشته‌هایی را به کارساز ارسال می‌کند که به متغیرهای محیطی با پیشوند HG_USERVAR_ تبدیل می‌شوند. برای نمونه، --pushvars ENABLE_FEATURE=true قلاب‌های (hooks) سمت کارساز را به همراه HG_USERVAR_ENABLE_FEATURE=true به عنوان بخشی از محیط آن‌ها فراهم می‌آورد.

ویژگی pushvars می‌تواند برای قلاب‌های قابل بازنویسی توسط کاربر و همچنین تنظیم سطوح اشکال‌زدایی مورد استفاده قرار گیرد. یک نمونه، داشتن قلابی است که کامیت‌های حاوی نشانگرهای تداخل (conflict markers) را مسدود می‌کند، اما به کاربر امکان می‌دهد تا در صورتی که فایل برای مقاصد آزمایشی از نشانگرهای تداخل استفاده می‌کند یا فرمت فایل دارای رشته‌هایی شبیه به نشانگرهای تداخل است، آن قلاب را نادیده بگیرد.

به‌طور پیش‌فرض، کارسازها --pushvars را نادیده می‌گیرند. برای فعال‌سازی آن، خطوط زیر را به فایل پیکربندی خود بیفزایید:

[push]
pushvars.server = true

در صورت موفقیت‌آمیز بودن push مقدار 0 و اگر چیزی برای ارسال وجود نداشته باشد مقدار 1 برمی‌گرداند.

ارسال اجباری (force push)
مجموعه تغییراتی که قرار است در مقصد گنجانده شود
بوک‌مارکی که باید ارسال شود
ارسال تمام بوک‌مارک‌ها (آزمایشی)
شاخهٔ مشخصی که مایل به ارسال آن هستید
اجازه دادن به ارسال یک شاخهٔ جدید
متغیرهایی که می‌توان به کارساز فرستاد (پیشرفته)
ارسال مجموعه تغییرات به‌صورت عمومی (آزمایشی)
مشخص کردن دستور ssh مورد استفاده
مشخص کردن دستور hg برای اجرا در سمت مقصد راه دور
اعتبارسنجی نکردن گواهی کارساز (نادیده گرفتن تنظیمات web.cacerts)

گزینه‌های علامت‌گذاری‌شده با [+] را می‌توان چندین بار مشخص کرد