مقایسه و ادغام پرونده‌های متنی در گنو/لینوکس

مقایسه پرونده‌ها با یکدیگر معمولاً کار طاقت فرسایی است و زمان و انرژی زیادی را می‌طلبد، با این حال می‌توان با استفاده از برخی ابزارهای مناسب و ساده، انجام چنین کاری را بدون مشکلات ذکر شده به خوبی به پایان رساند. اگر شما یک نویسنده هستید، ممکن است که به انواع مختلف پرونده‌های متنی سر و کار داشته باشید، یا اینکه به عنوان یک توسعه‌دهنده با تعداد بالایی از کدها روبرو هستید که باید آنان را به خوبی مدیریت و بررسی کنید، با استفاده از روش‌هایی که در این مطلب گفته شده‌اند، به راحتی می‌توانید فایل‌های مختلف را با هم ادغام و یا با هم مقایسه کنید.

۱) دیفیوز «Diffuse»

دیفیوز ابزار بسیار کاربردی و کوچکی است که برای مقایسه و ادغام پرونده‌های متنی شکل گرفته‌است، این ابزار از یک واسط گرافیکی زیبا و ساده برخوردار است که در آن برای مقایسه دو فایل می‌توان آنان را در کنار هم گشوده و به راحتی آنان را مقایسه کنید. نکتهٔ مهمی که در این نرم‌افزار وجود دارد و به آن برتری بخشیده است، قابلیت برجسته و مجزا کردن متونی است که به طور خودکار در مقایسه شناخته شده‌اند. این نرم‌افزار آن قسمت از متون که با هم متفاوت هستند را با رنگ‌هایی مناسب متمایز می‌کند که باعث می‌شود به سرعت متوجه شوید، در دو پروندهٔ متنی که کنار هم گشوده شده‌اند، چه تفاوت‌هایی وجود دارد. به‌علاوه این‌که این نرم‌افزار قادر است نوع نوشته‌ها و قالب پرونده را تشخیص دهد و بنابر نوع نوشته [مثلاً پرونده مرتبط با چه زبان برنامه‌نویسی است] نوع دیگری از برجسته سازی را نیز برای کدها پشتیبانی می‌کند. به عنوان مثال در تصویر زیر دو عدد پروندهٔ متنی که به زبان اکس‌ام‌ال «XML» هستند را مشاهده می‌کنید که بخش‌هایی از آن به رنگ نارنجی و برخی عبارات به رنگ قرمز هستند که برای عبارات و کلمات کلیدی این زبان استفاده شده است.

pic_1

همچنین می‌توانید با استفاده از قابلیت تغییر قالب متون از طریق این نرم‌افزار، قالب پرونده را به نوعی که دوست دارید تغییر دهید. قابلیت ادغام آن نیز ار چندین حالت رونویسی و درج از یک پرونده به پرونده دیگر برخوردار است. برای گردش و پیمایش ساده در پرونده‌هایی که بلند هستند، به راحتی می‌توانید از کلیدهای «CRTL + UP» و «CTRL + DOWN» استفاده کنید و مقادیر تغییر یافتهٔ قبلی و بعدی را مشاهده کنید.

در این نرم‌افزار از چندین قالب پروندهٔ متنی پشتیبانی می‌شود، همچنین می‌توانید از طریق تنظیمات کنترل نسخه، پرونده‌های خود را از طریق گیت،  اس‌وی‌ان «SVN» یا بازار «Bazaar» و … دریافت کنید. همچنین به خوبی می‌توانید پروندهٔ متنی مورد نظر خود را با استفاده از کلیدهای میانبر «CTRL + O» بگشایید یا اینکه از طریق گزینه‌ای که در بالای هر یک از بخش‌های ویرایش و مشاهده پرونده‌ها موجود است، پروندهٔ جدیدی را بگشایید.

با این حال اگر به امکانات بیشتری برای ویرایش و مقایسه و .. نیاز دارید و می‌خواهید پرونده‌های پیشرفته مانند داک «Doc»  را مدیریت کنید، می‌توانید از خود نرم‌افزار اداری لیبره‌آفیس استفاده کنید که از قابلیتهای خوبی برخوردار است.

۲) لیبره‌آفیس «LibreOffice»

اولین کاری که باید انجام دهید این است که نسخه اولیه یا اولین پرونده‌ای را که می‌خواهید ادغام یا مقایسه رویش انجام شود را بگشایید. سپس به قسمت نوار منو رفته و از منوی ویرایش «Edit» گزینه مقایسه سند «Document» را انتخاب کنید. بعد از این شما می‌توانید نسخهٔ ثانویه یا پروندهٔ سند دوم را برای مقایسه انتخاب کنید، در این حالت کادری گشوده می‌شود و شما به راحتی می‌توانید تفاوت‌ها و مقایسه بین این دو و سند را مدیریت کنید.

pic_4در این حالت می‌توانید تغییرات مشخص شده در پرونده را انتخاب کنید، با انتخاب هر یک آن قسمت از پرونده که مرتبط با تغییرات است مجزا و برجسته می‌شود. برای اینکه امکان بیشتری برای مدیریت و مقایسه می‌توانید از سربرگ فیلتر «Filter» استفاده کنید. این قسمت به شما این امکان را می‌دهد که مشخص کنید، تغییرات توسط چه ویرایشگری به طور مشخص انجام شده است. همچنین می‌توانید عملیات مشخصی را تعیین کنید (مثل درج، حذف، تغییر قالب‌بندی، تغیر جداول). افزون بر اینکه می‌توانید مشخص کنید تغییراتی که بر پرونده یا سند اعمال شده است بین زمان‌های خاصی باشد و تغییرات را بین بازه زمانی خاصی نمایش دهد.
این موضوع برای ویراستاران یا سردبیران و نویسندگان که نیاز دارند بدانند چه تغییراتی را بر یک سند و پروندهٔ متنی اعمال کرده‌اند، بسیار مفید خواهند بود.

۳) مِلد Meld

نرم‌افزار Meld نیز یک مقایسه‌کنندهٔ پرونده‌های متنی و پوشه‌ها و …است. بعد از اینکه نرم‌افزار اجرا شد، در صفحه آغازین آن بر روی گزینهٔ مقایسه پرونده «File Comparison» کلیک کنید، بعد از آن بر روی هر یک از دو دکمه نمایش داده شده در زیر دکمه «File Comparison» کلیک کنید و در کاد گشودن پرونده، پروندهٔ متنی خود را انتخاب کنید تا با هم مقایسه شوند. بعد از اینکه پرونده‌ها کاملا گشوده شدند، نرم‌افزار تغییرات و تفاوت‌هایی که بین این دو پرونده وجود دارند را به شکلی واضح در واسط گرافیکی زیبا و ساده نرم‌افزار مشخص می‌کند.

pic_1

دکمه‌ٔ پیکان شکل رو به پایین و بالا که در نوار بالایی قرار دارند،  می‌تواند برای جلو و عقب رفتن بین تغییرات کاربرد مناسبی داشته باشند. به شکلی که بین هرکدام از تفاوت‌هایی که مشخص شده‌اند جلو عقب می‌روید. از طریق گزینهٔ تغییرات «Changes» که در نوار بالایی قرار دارد، می‌توان تغییراتی که در پرونده دوم اعمال شده است در داخل پرونده اول ادغام کنید.

pic_==3

این نرم‌افزار نیز برای این‌که بتوانید پرونده‌های متنی که برای کدها هستند را به خوبی نمایش دهد از برجسته‌سازی برای عبارات کلیدی در زبان‌های برنامه نویسی پشتیبانی می‌کند. امّا این قابلیت به صورت پیش‌فرض فعّال نیست. برای فعّال کردن این قابلیت از طریق ویرایش «Edit» و گزینه «Preferences» وارد تنظیمات شده و از طریق سربرگ ویرایشگر «Editor» تیک کنار گزینهٔ «Use Syntax Highlighting» را بزنید. همچنین توسط این نرم‌افزار می‌توان سه پرونده را نیز با هم مقایسه کرد فقط کافی است در صفحه آغازین، گزینهٔ «3-way comparison» انتخاب کنید.

۴) استفاده از ویرایشگر ویم «Vim»

برای آنکه دو پروندهٔ متنی را با استفاده از ویرایشگر Vim با یکدیگر مقایسه کنید، می‌بایست از دستور «vimdiff» استفاده کنید.  به طوری که برای انجام این کار باید ابتدا خط فرمان را گشوده و در خط فرمان دستور مذکور را به همراه دو فایلی که می‌خواهید با هم مقایسه شوند در خط فرمان بنویسید، مشابه دستورات زیر:

vimdiff filename_one.h filename_two.h

این دستور باعث می‌شود در خط فرمان ذو بخش مجزّا و در کنار هم ایجاد شوند تا هر یک از پرونده‌ها در آنان گشوده شوند. سپس این نرم‌افزار تغییراتی که در پرونده دوم نسبت به پرونده اول وجود دارد یعنی موارد متفاوت و وجه تمایز آنان را  با رنگ‌هایی متفاوت، برجسته و مجزا می‌کند. با این وجود اگر در فضای خط فرمان خود فضای کافی برای گودن پرونده در کنار هم دارید، می‌توانی از چندین پرونده برای مقایسه توسط این دستور استفاده کنید و نام آن‌ها را نیز بعد از دستور وارد کنید.

pic_5

اگر به خط فرمان علاقه‌ای ندارید و می‌خواهید از یک نرم‌افزار گرافیکی استفاده کنید، واسط گرافیکی GVim نیز برای چنین کاری قابل استفاده خواهد بود. در این نرم‌افزار از طریق گزینهٔ «Split Diff» از منوی پرونده «File» میتوان عمل مشابه را انجام داد.

pic_6

همچنین گزینه‌های مختلفی برای ادغام پرونده‌ها در خط فرمان توسط این دستور یعنی «VimDiff» وجود دارد، به عنوان نمونه اگر از این دستور به همراه کلمهٔ کلیدی «do» به کار رود پرونده دوم در اول ادغام می‌شود، یعنی آن بخشی که از پرونده اول در پرونده دوم تغییر یافته همانند پرونده دوم خواهد شد. برای انجام عمل عکس آن یعنی ادغام پرونده اول با دم به صورت برعکس عمل قبلی باید از کلمهٔ کلیدی «do» استفاده کنید.

شاید قبل از اینکه بخواهید دو پرونده را با هم ادغام کنید، نیاز داشته باشید تا ابتدا برخی تغییرات را بررسی کنید، برای جلو و عقب رفتن بین تغییرات یافت شده و مشخص شده می‌توانید از کلیدهای میانبر «c[» و «c]» استفاده کنید که به ترتیب برای عقب و جلو رفتن در تغییرات مشخص شده در  پرونده‌های بزرگ وطولانی کاربرد دارند.

۵) گزینه‌های دیگر

نرم‌افزارهای گوناگونی برای این کار وجود دارند مانند نرم‌افزارهای «Beyond Compare»، «Xxxdiff»، «Kompare,» و «KDiff3» که هر یک از این نرم‌افزارها نیز به خوبی قادرند از پس مقایسه و ادغام پرونده‌ها برآیند. با این تفاوت که هر یک مشکلات، کاستیها و ویژگی‌های خاص خود را دارد. با این حال انتخاب من برای استفاده نرم‌افزار «Melt» است که با ظاهر زیبا و مدرن خود، توانایی خوبی برای برجسته‌سازی و ایجاد وجه تمایز برای تغییرات و تفاوت‌ها دارد. با این حال کاربران کی‌دی‌ای نیز می‌توانند از دو گزینه «Kompare» و «KDiff3» استفاده کنند که با  ظاهر و قالب میزکار کی‌دی‌ای هماهنگتر هستند.

kompare

منابع : بخش اول مقاله  howtoforge و بخش دوم مقاله howtoforge