اگه این تعرفه ها اجرا بشه فکر نکنم دیگه کسی از صنف نرم افزار حداقل فرار کنه
ولی به نظر من اقدام خوبیه شاید در 10 سال آینده به جاهای خوبی برسه
در تصویر بالا هری و سالی، یک کپی از مخزن موجود را گرفته و سپس هر کدام جداگانه بر روی کپیهای خودشان مشغول به کار میشوند. سپس سالی کارش را زودتر به اتمام رسانده و مخزن را به روز میکند. بعد از آن، هری هم کارش به پایان میرسد و قصد به روز کردن مخزن را دارد ولی سیستم به او اجازه این کار را نمیدهد؛ چون این مخزن آن مخزن نیست که هری قبلا از آن کپی گرفته است. آن مخزن بعد از به روزرسانی سالی تغییر یافته است. پس او مجبور است تا تغییرات جدید مخزن را دریافت کرده و کپی خودش را به روز کند. پس از آن میتواند کپی خودش را بر روی مخزن اعمال کند (با فرض اینکه تغییرات جدید هیچ تصادمی با تغییراتی که روی کپی خودش اعمال کرده است ندارند).
سناریو بالا با احتساب وجود تصادم
اگر همین سناریوی بالا را فرض کنیم که تغییراتی که هری روی فایلها داده است همان تغییراتی است که سالی قبلا روی مخزن اصلی روی همان فایلها اعمال کرده است، آیا در این حالت دریافت به روزرسانیهای جدید باعث ایجاد تصادم میشود؟
هری درخواست ادغام آخرین تغییرات مخزن را با کپی خودش میکند. از آنجا که فایل A تصادم دارد یک فلگ flag از این وضعیت میگیرد. حال هری میتواند تفاوتهای ایجاد شده را ببیند و بین آنها یکی را انتخاب کند. در این وضعیت هری همپوشانیهای کدها را برطرف میکند و شاید هم بحثی در مورد این تصادم با سالی داشته باشد تا بهترین تغییر کد انتخاب گردد و نهایتا به روشی کاملا امن و مطمئن، با مخزن اصلی ادغام میشود.
پی نوشت : نرم افزارها نمیتوانند موضوع تصادم را به طور خودکار اعمال کنند. از آنجا که نیاز به تصمیم گیری و درک هوشمند دارد این کار به صورت انسانی باید بررسی گردد.
«... من چندین نرم افزار فعال دارم که سالیان قبل نوشتهام و هر چند وقت یکبار باید بروزرسانی و نگهداری شود. این نرم افزارها با Windows Forms Application نوشته شده و همانطور که احتمالاً میدانید این تکنولوژی محبوب بیش از 20 سال از عمرش میگذرد و به دلیل استفاده از موتور رندرینگ GDI و GDI+ که آن هم بسیار قدیمیست باعث شده است با قابلیت DPI Scaling ناسازگار باشد...»