حل تداخل در JOSM

تاریخ بازبینی ۱۳۹۵/۰۷/۰۶

گاهی اوقات در JOSM مشغول به کار هستید و زمانی که می‌خواهید تمام ویرایش‌های زیبای خود را آپلود کنید، پیامی ناخوشایند در برابرتان ظاهر می‌شود که از وقوع تداخل (conflict) خبر می‌دهد!
conflict detected
آنچه که اتفاق افتاده این است که شما مقداری داده دانلود کرده‌اید. در این داده یک نقطه هم هست که ما اسم آن را «گره الف» می‌گذاریم. سپس هنگامی که شما در حال ویرایش بودید، یک نفر دیگر نیز «گره الف» را دانلود کرده، آن را تغییر داده و تغییراتش را در OpenStreetMap ذخیره هم کرده است. حالا وقتی که شما سعی می‌کنید نسخهٔ خودتان از «گره الف» را آپلود نمایید، نسخهٔ آن با چیزی که در OSM ذخیره شده، متفاوت است. بنابراین JOSM نمی‌داند کدام نسخه از «گره الف» را باید نگه دارد.

تداخلات

گاهی اوقات، JOSM خودش می‌تواند تداخل را حل کند و پیامی مانند زیر به شما می‌دهد:
resolved automatically
این یعنی JOSM به‌طور خودکار تصمیم گرفته که اقلام موجود در مجموعه‌داده‌های محلی شما را به کارساز اصلی آپلود نکند، زیرا کاربر دیگری قبلاً آن‌ها را حذف کرده‌است. با وجود این، JOSM بعضی از تداخل‌ها را نمی‌تواند به‌سادگی حل کند و بنابراین تصمیم‌گیری را بر عهدهٔ کاربر می‌گذارد تا بهترین شیوهٔ عمل را تعیین کند. و این یعنی خودتان باید تداخل را حل کنید.

این به شما می‌گوید که به همهٔ تداخل‌های خود در لایهٔ Layer 1 در Dialog List نگاه کنید:
warning unresolved

این پنجره به شما هشداری را نشان می‌دهد که می‌گوید در معرض تجربهٔ تداخل در ویرایش‌هایتان هستید. اگر check on the server (بررسی کارساز) را بزنید، قادر خواهید بود مشکلات ویرایش را برطرف کنید:
check on server

این هشدار می‌گوید JOSM نتوانسته یک گره را حذف کند زیرا هنوز در یک راه به آن ارجاع داده می‌شود. برای اصلاح این، کاربر باید قبل از آپلود داده‌ها به JOSM بازگردد و تداخل را حل کند.
still in use

حل تداخل

روند حل تداخل بسیار ساده است، اگرچه ممکن است در JOSM ابتدا گیج‌کننده به نظر برسد. اساساً، JOSM برای هر تداخل دو گزینه پیش روی شما قرار می‌دهد: نسخه‌ای از یک شی که روی کامپیوتر شماست و نسخه‌ای از آن شی که روی کارساز است. باید انتخاب کنید که آیا نسخهٔ خود را نگه می‌دارید یا نسخهٔ جدیدی که روی کارساز هست، باقی بماند.
ممکن است فکر کنید «البته که نسخهٔ من بهتره!» و شاید حق با شما باشد. اما به مثال ابتدای این فصل فکر کنید. شاید در حالی که شما مشغول ویرایش بوده‌اید، نقشه‌کش دیگری اطلاعات زیادی را به یکی از گره‌های مجموعه‌دادهٔ شما اضافه کرده باشد. اگر شما نسخهٔ خود را به نسخهٔ او ترجیح دهید، تمام اطلاعات ارزشمندی که آن کاربر اضافه کرده را از دست می‌دهید. ازاین‌رو باید بررسی کنید که آیا نسخهٔ او را نگه دارید یا آن را با نسخهٔ خودتان ترکیب کنید.
هنگامی که پنجرهٔ تداخل ظاهر می‌شود، بهترین کار این است که دکمهٔ «Synchronize … only» را انتخاب کنید. شاید لازم باشد این کار را برای بیش از یک شی انجام دهید، اما بهتر است تداخل‌ها را یکی‌یکی حل کنید.
synchronize node
هنگامی که روی این دکمه کلیک کنید، پنجره‌ای باز می‌شود که جزئیات تداخل را شرح می‌دهد. پیام خطا ممکن است پیچیده به نظر برسد، اما ساده است. نماد مربع قرمز در زبانهٔ بالا نوع تداخل را مشخص می‌کند. تداخل مثال زیر به خصوصیت‌ها، مانند موقعیت و وجود شی اشاره می‌کند. به همین دلیل است که مختصات (coordinates) و وضعیت حذف (deleted state) ذکر شده‌اند.

انواع تداخل:

  • خصوصیت‌ها (Properties): شی جابه‌جا شده (مختصات) یا حذف شده
  • تگ‌ها (Tags): تگ‌ها مطابقت ندارند
  • گره‌ها (Nodes): در لیست گره‌های دو راه اختلاف وجود دارد
  • اعضا (Members): در لیست اعضای یک رابطه اختلاف وجود دارد
    properties with conflicts

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

در مثال زیر شما گزینهٔ ادغام را ندارید. اگر فکر می‌کنید که ویرایش‌های شما درست است، روی ستون اول یا My version کلیک کنید. اگر فکر می‌کنید که ویرایش‌های آنان بهتر است، روی Their version کلیک کنید.
conflicts resolved

پس از اینکه نسخه‌ای را که فکر می‌کنید بهتر است انتخاب کردید، روی «به‌کارگیری راه‌حل» (Apply Resolution) کلیک کنید. چند پنجرهٔ دیگر ظاهر می‌شود و پس از آن می‌توانید ویرایش‌هایتان را آپلود کنید. ویرایش‌های بیشتری انجام دهید. سپس روی Upload کلیک کنید. پنجره‌ای باز می‌شود که می‌گوید:
command stack

در منوی Windows پنجرک Conflict وجود دارد که تداخل‌ها را لیست می‌کند تعداد کل تداخل‌های حل‌نشده در عنوان پنجرک نمایش داده می‌شود. با کلیک روی یک تداخل، می‌توانید آن را انتخاب یا حل کنید. وقتی که تداخل‌های زیادی برای حل‌کردن دارید این پنجرک مفید است.
one unresolved
تا زمانی که این لیست خالی نشود، نمی‌توانید تغییرات خود را آپلود کنید.

راه‌های اجتناب از تداخل

مرتباً آپلود کنید

برای به حداقل رساندن شانس و تعداد تداخل‌ها، ویرایش‌های خود را به‌طور منظم آپلود کنید. تداخل بیشتر برای کسانی رخ می‌دهد که تمایل دارند منطقهٔ در حال کار را روی کارساز محلی خود ذخیره کنند و تا آپلودکردن آن مدت زمانی را صبر می‌کنند. بهتر است منطقهٔ موردنظر را دانلود کنید، ویرایش کنید و بلافاصله آپلود کنید. هرچه زمان بین دانلود داده و آپلود تغییرات بیشتر باشد، احتمال این که در این مدت کسی چیزی را ویرایش کرده باشد بیشتر می‌شود. اگر در یک کارزار نقشه (Mapathon) هستید و عارضه‌ای مانند یک خیابان را ویرایش می‌کنید که ممکن است بقیه نیز روی آن کار کنند، خیلی زود، مثلاً پس از هر ۶ ویرایش، تغییرات خود را آپلود کنید!

در محدوده‌ای که دانلود می‌کنید ویرایش کنید

ویرایش در ناحیهٔ مشخصی که دانلود کرده‌اید خطر تداخل را کم می‌کند. اطمینان حاصل کنید که خارج از منطقه‌ای که دانلود کرده‌اید، ویرایش نمی‌کنید. در JOSM به‌راحتی می‌توانید ببینید که کدام مناطق خارج از منطقهٔ دانلودشده است، زیرا پس‌زمینه به جای سیاه یکدست، دارای خطوط هاشور مورب است.

edit outside area

خلاصه

هنگامی که با JOSM ویرایش می‌کنید، خطر درگیرشدن با تداخل‌ها وجود دارد. تداخل زمانی رخ می‌دهد که یک شی همزمان به دست دو نفر ویرایش شود. با درک اینکه تداخل چیست و چگونه باید با آن برخورد کنید، می‌توانید مطمئن باشید که بهترین ویرایش ممکن در OpenStreetMap ذخیره می‌شود.