কর্মপ্রবাহ: গিটটিতে লক ছাড়াই বাইনারি ডকুমেন্ট ফর্ম্যাটগুলি ব্যবহার করা (সাবগ্রেশন থেকে সরানো)


16

আমরা বিভিন্ন গ্রাহকের জন্য প্রচুর প্রকল্পের সাথে একটি সফ্টওয়্যার পরামর্শদাতা। আমরা traditionতিহ্যগতভাবে সাবভারশন ব্যবহার করি তবে বর্তমানে গিটে যাওয়ার বিষয়ে বিবেচনা করছি।

আমরা উত্পাদিত নথির একটি উল্লেখযোগ্য অংশটি আমাদের গ্রাহকদের (প্রয়োজনীয়তা, গ্লোবাল ডিজাইন, পরীক্ষার চশমা ইত্যাদির) সাথে ভাগ করা হয় এবং আমরা এগুলি তৈরি করতে এমএস অফিস ব্যবহার করি। সাবভারশনে, আমরা একই সময়ে একই ডকুমেন্টটি কেউ সম্পাদনা করছে না তা নিশ্চিত করতে আমরা এর "লক" বৈশিষ্ট্যটি ব্যবহার করতে পারি। গিটে, আপনি এটি করতে পারবেন না যেহেতু বিতরণ করা প্রকৃতির কারণে গিটের কোনও তালা নেই।

তালিকাগুলি যোগাযোগ ব্যবস্থার চেয়ে সত্যই সামান্য কিছু, তবে তারা খুব কার্যকর।

বর্তমানে, আমাদের কোড এবং গ্রাহক-মুখী নথিগুলি সাধারণত একটি আলাদা এসএনএন সংগ্রহস্থলের বিভিন্ন সাবফোল্ডারে থাকে। গিটে যাওয়ার সময়, আপনি আমাদের কি সুপারিশ করবেন? আমি বিকল্পগুলির একটি সেট দেখছি:

  1. আমরা এসএনএন সংগ্রহস্থলগুলিকে 1-অন -1 গিটে স্থানান্তরিত করি। অফিস ফাইলগুলিতে লকগুলি ব্যবহার করার পরিবর্তে, গিট লোকেরা আমাদের পরামর্শ মতো যা করে এবং এটি সমাধানের জন্য কোনওভাবে আমাদের ওয়ার্কফ্লো পরিবর্তন করার চেষ্টা করি। এটি কোনও দস্তাবেজ সম্পাদনায় কোনও শাখায় কাজ করতে পারে এবং পর্যালোচনাটি মার্জ করে। এই পদ্ধতিটি যেমন এক্সেল শীটগুলিতে প্রজেক্ট ম্যানেজমেন্ট সম্পর্কিত তথ্যগুলি বিভক্ত হয়; তারা সহজেই দলের সদস্যদের দ্বারা সম্পাদিত হয় (এবং আমরা উত্সাহিত করি যে এটি হয়ে গেছে) তবে কোনও আনুষ্ঠানিক পর্যালোচনা প্রক্রিয়া সাপেক্ষে নয়

  2. আমরা কোডের জন্য গিট এবং ডক্স এবং প্রকল্প পরিচালনার জন্য এসএনএন ব্যবহার করি। এর অসুবিধাটি রয়েছে যে নির্দিষ্ট কিছু নকশাকৃত নথিগুলি কোডটি "স্পষ্টভাবে" চিহ্নিত করে "নিকটবর্তী" হবে না, এর ফলে লোকেরা সেগুলি আপডেট করতে ভুলে যাওয়ার সম্ভাবনা বাড়বে। অতিরিক্তভাবে, প্রত্যেককে দুটি সেট সরঞ্জাম ব্যবহার করতে হবে এবং বুঝতে হবে। এটি বলেছে যে, গ্রাহক-মুখোমুখি নকশা নথির জন্য পাঠ্য-ভিত্তিক ডক সরঞ্জামগুলিতে (ক্ষীর, মার্কডাউন, এইচটিএমএল, যাই হোক না কেন) সরে যাওয়ার এটি দুর্দান্ত সুযোগ।

  3. 1 এর মতো, তবে আমরা একটি git lockকমান্ড হ্যাক করি যা এসএনএন লকটি আমাদের জন্য যা করে তা করে (কেবল পঠনযোগ্য পঠিত পতাকাটি যথাযথভাবে টগল করুন এবং কোনও উপায়ে সার্ভারের সাথে সিঙ্ক করুন)।

ডিভিসিএস-এ লকগুলি কাজ করে না এমন যুক্তিটি আমি কিনছি না কারণ আপনি সম্পূর্ণ অফলাইনে থাকা অবস্থায় সিস্টেমটিও কাজ করা উচিত। এসভিএন লকগুলি পাশাপাশি ওভাররাইড করা যায়; তারা একটি যোগাযোগ ব্যবস্থা। কোনও ধরণের নেটওয়ার্ক সংযোগ ছাড়াই আপনি আপনার কম্পিউটারকে প্রচুর যোগাযোগের জন্য পাবেন না।

আমরা একমাত্র দোকান হতে পারি না যারা svn lockআমাদের কর্মপ্রবাহের সাথে খাপ খায় তাই নিয়ে খুব খুশি ?

কোন ধারণা বা টিপস?

আমি /programming/119444/locking-binary-files- using-git- version- control-system খুঁজে পেয়েছি তবে আলোচনাটি বরং প্রযুক্তিগত; আমি একই সাথে একই বাইনারি ফাইল সম্পাদনা করতে দু'জন দলের সদস্যের ব্যবহারিক সমস্যা সমাধানের বা এড়ানো উপায়গুলি খুঁজছি।


আপনি কীভাবে গ্রাহকদের সাথে আপনার নথিগুলি "ভাগ" করতে পারেন তা স্পষ্ট করে বলতে পারেন? আমি আশা করছি তাদের পাঠযোগ্য-অ্যাক্সেস রয়েছে এবং পরিবর্তনগুলি তাদের দলিলের পরিবর্তনের অনুরোধের ফলাফল হিসাবে আপনার দল দ্বারা পরিচালিত হবে। এটা কি ঠিক?
ওয়াঘানড্রয়েড

2
বাইনারি ডকুমেন্টগুলি পরিচালনা করার জন্য আপনি ভিসিএসের পরিবর্তে সম্পদ পরিচালন সরঞ্জাম (লকিং বৈশিষ্ট্য সহ) ব্যবহার করতে চাইতে পারেন। আমি এমন এক জায়গায় কাজ করেছি যেখানে এসভিএন-তে 2 গিগাবাইট ওপ ইমেজ চেক করা ছিল, যা সমস্ত কিছু কমিয়ে ধীর করে তোলে। আমরা ব্যাক-আপ জিনিসগুলির অধীনে একটি ফোল্ডারে এগুলি সরিয়ে দেওয়ার পরে তাড়াতাড়ি এবং পরিচালনা করা সহজ হয়ে গেল।
Spoike

1
@ বাউকেটা ইমেলের মাধ্যমে বা কাগজে। মুল বক্তব্যটি হ'ল "কেবলমাত্র ডক্সের জন্য পাঠ্য ব্যবহার করুন!" এখানে একটি যুক্তিসঙ্গত পন্থা নয়, যেহেতু এটি অর্ধ-শালীন দেখায় জড়িত প্রচেষ্টা এমএস ওয়ার্ডের মতো সরঞ্জামগুলির চেয়ে অনেক বেশি।
skrebbel

@ স্পোকাই, আমার কাছে একটি বৈধ উত্তরের মতো শোনাচ্ছে :-) যাইহোক, কোনও প্রস্তাবনা?
skrebbel

@ এসক্রববেল এক শব্দ, লটেক্স।
কিরিয়াস

উত্তর:


5

আমি আপনাকে দুটি কারণে এমএস অফিসের নথির জন্য এসভিএনের সাথে থাকার পরামর্শ দিচ্ছি:

  1. এটি ইতিমধ্যে সেখানে রয়েছে এবং এটি (আমার মতে) অফিস নথি রাখার জন্য ভাল ( এখানে দেখুন )। এটি করার জন্য আরও অনেক তৃতীয় পক্ষের সরঞ্জাম রয়েছে।
  2. লকটি যদিও গিতে অর্জন করা যায়, এটি "গিটারের মতো কাজ করার পদ্ধতি" নয়। আপনার যদি এই বৈশিষ্ট্যগুলির প্রয়োজন হয় তবে সেই সরঞ্জামটির সাথে লেগে থাকুন যা আপনাকে সেরা সমাধান দেয়।

একটি কথা আছে যা আমার কাছে পছন্দ হয়েছে এরকম কিছু বলে: "যখন আপনি একটি হাতুড়ি ধরছেন, তখন সবকিছুই নখের মতো লাগে"। আপনি কোডটি ধরে রাখতে গিটের দিকে চলে যাচ্ছেন, এর অর্থ এই নয় যে আপনার ডকুমেন্টগুলি ধরে রাখতে এটি ব্যবহার করা উচিত।


কোড এবং নথি একই এসভিএন সংগ্রহস্থলে থাকলে কী হবে?
জিমি টি।

2

অফিস ফাইলগুলিতে কাজ করার জন্য কোড সংস্করণ নিয়ন্ত্রণ সর্বোত্তম সরঞ্জাম নয়, কারণ এগুলি বাইনারি এবং এই সরঞ্জামগুলি ফাইল-স্তরের পরিবর্তনে কাজ করে।

মিডিয়াউইকি (ফ্রি) বা অ্যাটলিশিয়ান কনফিলেন্স (অর্থ প্রদান) এর মতো একটি সহযোগিতার সরঞ্জাম ব্যবহার করুন, যা থেকে আপনি সহজেই ওয়ার্ড ডকুমেন্টটি বের করতে পারেন। অথবা অফিস ফাইলগুলি উত্পন্ন করতে ল্যাটেক্স ব্যবহার করুন।

আমাকে প্রসারিত করুন ...

যদি আপনাকে সহযোগিতা করতে হয় তবে আপনাকে অবশ্যই এমন একটি মডেল অবলম্বন করতে হবে যা রূপান্তরগুলিকে হাইলাইট করে (যেমন, একটি শব্দ পরিবর্তন করেছে, পুনরায় রঙ করা হয়েছে, বা কেবলমাত্র একটি ফন্ট পরিবর্তন করেছে) ইউনিটে, যেমন একটি ফাইল।

এসভিএন এবং গিট কোডের জন্য ভাবা হলেও, নিম্ন-স্তরের সরঞ্জাম যা পাঠ্য বিষয়বস্তু দ্বারা তাদের ফাইলগুলি তুলনা করে। তবে সমস্যাটি হ'ল তারা কেবল পাঠ্য ফাইলগুলিতেই কাজ করতে পারে, কারণ তারা উচ্চ-স্তরের পরিবর্তনগুলির মডেলটি বের করার জন্য ফাইলের প্রকৃতি / বিষয়বস্তুগুলির যত্ন করে না।

একটি স্পষ্ট উদাহরণ একটি চিত্র ফাইল । যদিও টার্টোজাইজমার্জ এমন একটি সরঞ্জাম যা এসভিএন ব্যবহারকারীদের তাদের আসল পরিবর্তনের জন্য চিত্রগুলির তুলনা করে সহায়তা করে, সাধারণ VCSএগুলি ফাইলের উপর সামগ্রী প্যাচ দ্বারা চালিত । আমাকে ব্যাখ্যা করতে দাও. টর্টোইসমার্জের মতো একটি সরঞ্জাম আপনাকে বলতে পারে যে কোনও ফাইলের একটি নতুন সংস্করণ কেবল কয়েকটি পিক্সেল বা লুমিন্যান্স দ্বারা পরিবর্তিত হয় যদি এটি দুটি ফাইলের আরও জটিল এইচএসভি বিশ্লেষণ প্রয়োগ করে। আপনি একটি জলছবি যুক্ত করতে পারেন বা রঙের স্তর পরিবর্তন করতে পারেন, একটি সরঞ্জাম যা চিত্র ফাইলগুলির সাথে তুলনা করে তা যদি আপনার তুলনামূলক ভাল অ্যালগরিদম প্রয়োগ করে তবে আপনাকে পার্থক্যগুলি হাইলাইট করবে । তবে আপনার ক্লায়েন্টে নতুন ফাইলটি পরীক্ষা করতে অবশ্যই হবেএকটি ব-দ্বীপ উত্পাদন। একটি ব-দ্বীপ হ'ল লাইনগুলির একটি সেট এবং ফাইলগুলিতে যুক্ত হওয়া লাইন। বাইনারি ফাইল যদি তারা না কোন লাইন ব্রেক আছে ঘটতে আছে \r\nঅনুরূপ, তাদের পে লোড যদি আপনি একটি একক চরিত্র আপনি একটি সম্পূর্ণ লাইন প্রতিস্থাপন হচ্ছে যাতে পালটানো, বা, এবং একটি ব-দ্বীপ হবে।

সুতরাং এখানে সমস্যা। বাইনারি ফাইলগুলি সংস্করণ নিয়ন্ত্রণের জন্য ভাল নয় কারণ আপনি প্রায় প্রতিটি সংশোধনের জন্য পুরো ফাইলটি প্রতিস্থাপন করতে পারেন। আপনি যখন এমএস অফিস ব্যবহার করে অফিস ফাইলগুলি লিখেন এবং ওপেনঅফিসের সাহায্যে আপনার সহযোগী সম্পাদনা করবেন তখন বিবেচনা করুন। যদি তারা ওপেনএক্সএমএল ফাইলগুলির সংক্ষেপণ অ্যালগরিদমের আরও কিছুটা ভিন্ন সংস্করণ প্রয়োগ করে তবে আপনি নথিতে একটি কমা পরিবর্তন করলেও আপনি সম্পূর্ণ ভিন্ন ফাইলের মধ্যে শেষ হয়ে যাবেন ।

সহযোগী সফ্টওয়্যারগুলি অভ্যন্তরীণভাবে একটি পাঠ্য-ভিত্তিক ফর্ম্যাটে নথিগুলি রেন্ডার করে, কারণ পাঠ্যটি হ'ল আপনার সংস্থার পক্ষে সত্যিকার অর্থে অর্থবোধক এবং পার্থক্যগুলি গণনা করতে বা দ্বন্দ্বগুলি পরিচালনা করতে পারে। ল্যাটেক্স বা মার্কডাউন যদি আপনার পছন্দ হয় তবে একটি নথি একটি উন্নত মার্কআপ সহ একটি পাঠ্য ফাইল হিসাবে সংরক্ষণ করার উপায় , তাই ক্লাসিক টিএক্সটি ফাইলের মতো নয় যার কোনও ফন্ট / বিন্যাসকরণ নিয়ন্ত্রণ নেই।

তবে স্পষ্টতই আপনার গ্রাহকরা মার্কডাউন ফাইলগুলি খুলতে পছন্দ করবেন না, তারা কি? ঠিক আছে, আপনি সহজভাবে বলতে পারেন, এবং আমি সত্যিই সহজ বলতে চাইছি, সোর্স ডকুমেন্টকে পিডিএফ, ওয়ার্ড বা যে কোনও কিছুতে রূপান্তর করতে আমি বর্তমানে গুগল সম্পর্কে খুব অলসভাবে ব্যবহার করি any

সংক্ষেপিত

আপনি যদি আপনার উত্স নিয়ন্ত্রণে পাঠ্য ফাইলগুলি পরীক্ষা করতে শুরু করেন তবে ফাইল ইতিহাসের উপর আপনার আরও বেশি নিয়ন্ত্রণ রয়েছে এবং বিশেষত ভিসিএস লকগুলি ব্যবহার না করে সহজেই বিরোধগুলি পরিচালনা করতে পারেন।

অফিসিয়াল দস্তাবেজটি আনুষ্ঠানিকভাবে ভাগ করে নেওয়ার আগে আপনার কোনও অফিস ফাইলে উত্স পাঠ্য নথি রফতানি করার জন্য একটি রুটিন প্রয়োজন

দুটি পদক্ষেপ পৃথক করা একটি শেখার বক্ররেখার ব্যয় করে মানুষকে আনন্দিত করে।


লিনাক্স এবং ম্যাক পাঠ্য ফাইলগুলিতে আপনার সংজ্ঞা অনুসারে লাইন থাকে না :-) বাইনারি ফাইলগুলির জন্য ডেল্টাসগুলি সহজেই তৈরি করা যায়। আপনি একটি পৃথক অ্যালগরিদমের সিদ্ধান্ত নিন। এসভিএন উদাহরণস্বরূপ বাইনারি ফাইলগুলির জন্য দুর্দান্ত, ছোট্ট ডেল্টাস তৈরি করে (কমপক্ষে বড় বড় .dll ফাইলগুলির সাথে যা আমার সবচেয়ে বেশি অভিজ্ঞতা আছে)
gbjbaanb

হ্যাঁ অবশ্যই নন-উইন্ডোজের বিভিন্ন লাইন টার্মিনেটর রয়েছে। যাইহোক আপনি যদি একটি ছোট ব-দ্বীপ তৈরি করতে পরিচালনা করেন (তবে আমাকে উত্তরটি কিছুটা পুনরায় লিখতে হবে) এটি কী পার্থক্যকে মানব-পঠনযোগ্য করে তোলে? অবশ্যই না. ডিএলএল-এর মধ্যে কোন ক্লাস পরিবর্তন করা হয়েছে তা আপনি বলবেন না। এবং আবার সমস্যা দুই কম্পাইলার যে পারে (আমি বললাম may ) শ্রেণীর তারা মত পুনঃক্রমবিন্যাস করে সম্পূর্ণ ভিন্ন ফাইল উত্পাদন। এটি উত্তরের মূল বিষয় ছিল
usr-local-ΕΨΗΕΛΩΝ

-1

আপনি লকিং যুক্ত না করে সেই দস্তাবেজের জন্য গিট ব্যবহার করতে পারেন। একটি গিট ওয়ার্কফ্লো চয়ন করুন যা মাস্টারে না থাকলে মাস্টার শাখায় চাপ দেয়। (চয়ন করার জন্য বেশ কয়েকটি ওয়ার্কফ্লো রয়েছে)) এটি লোককে বাইনারি ডকুমেন্ট ফাইলগুলিতে একে অপরের পরিবর্তনগুলি ওভাররাইট করা থেকে বিরত রাখবে। ধরে নিন দুটি ব্যক্তি একই বাইনারি ডকুমেন্টটি সংশোধন করে। প্রথমটিতে যা এটি মাস্টারকে ঠেলে দেয় তাদের পরিবর্তনগুলি পায় The দ্বিতীয়টি ব্লক হয়ে যাবে কারণ তাদের অনুলিপি মাস্টার শাখার পিছনে রয়েছে। তাদের প্রথমে সিঙ্ক করতে হবে। তাই দ্বিতীয় ব্যক্তি সিঙ্ক করেন। এটি বাইনারি ডকুমেন্টের জন্য একীভূত বিরোধ প্রদর্শন করবে। সেই ব্যক্তি কোথাও তাদের সংস্করণটি সংরক্ষণ করে এবং মাস্টারের কাছ থেকে সংস্করণটি নিয়ে বিরোধের সমাধান করে (এটি প্রথম ব্যক্তি দ্বারা চালিত হয়েছিল)। এই মুহুর্তে দ্বিতীয় ব্যক্তির ফাইলগুলি মাস্টার শাখায় আপ টু ডেট থাকে। তারা সর্বশেষতম বাইনারি ডকুমেন্টে (হাত দ্বারা) তাদের পরিবর্তনের সাথে একত্রীভূত হয়, যার পরে প্রথম ব্যক্তির এবং দ্বিতীয় ব্যক্তির পরিবর্তনগুলি উভয়ই থাকবে। তারপরে নতুন সংস্করণটি মাস্টারে চাপানো হবে এবং নতুন মাস্টার শাখা হয়ে যাবে। মার্জ করা একটি ব্যথা, তবে এটি তখনই ঘটে যখন কোনও বিরোধ হয়। এছাড়াও, পরিবর্তনগুলি হারিয়ে যায় না বা ওভাররাইট করা হয় না। বিবাদগুলি সনাক্ত করা হয়েছে এবং ব্যবহারকারীরা সেগুলি পরিষ্কারভাবে সমাধান করতে সক্ষম হন।


4
ঠিক এই মার্জিং ব্যথা হ'ল লকগুলি যা প্রতিরোধ করবে বলে মনে করা হচ্ছে।
oefe

ওয়ার্ড ডকুমেন্টগুলিকে একীভূত করতে পারে এমন একত্রীকরণের সরঞ্জামগুলি আছে। তবে তাদের সাথে আমার কোনও অভিজ্ঞতা নেই, তবে তারা কতটা ভাল তা সম্পর্কে আমার কোনও ধারণা নেই?
পিট

আপনার উত্তরের জন্য ধন্যবাদ. আমি দেখতে পাচ্ছি যে এটি কাজ করার গিটার উপায়। @ পিট, ওয়ার্ড নিজেই সুন্দর শালীন ডিফ করতে পারে, মার্জ সম্পর্কে নিশ্চিত নয়। তবে তবুও, এটি এমন একটি ব্যথা যা লক সহ সহজেই এড়ানো যায়। আমরা খুব সহজেই অফিসের দস্তাবেজগুলি একই সাথে সম্পাদনা করি; আমাদের বেশিরভাগ কাজ (বিস্তারিত ডক্স সহ) কোডে থাকে। এই প্রশ্নের সম্পর্কে ক্ষেত্রে যেখানে 2 জনগণের 2% না সম্পাদন করা একই সময়ে একই নথি। এটি দেওয়া হয়েছে যে এটি 2%, 30% নয়, একীভূত সমাধানটি সাবঅপটিমাল অনুভব করে।
skrebbel

-2

আপনার প্রথম 2 সমাধান একসাথে রাখুন এবং আপনার তৃতীয়টির প্রয়োজন হবে না।

আপনি যদি ডিস্কে আপনার স্প্রেডশিটগুলি সিএসভি হিসাবে সংরক্ষণ করেন তবে এক্সেল সেগুলি সম্পাদনা করবে এবং তারপরে গিট সেগুলি আপনার জন্য মার্জ করে খুশি হবে।

একইভাবে, আপনি যদি এইচটিএমএল বা (godশ্বর আমাদের সাহায্য করুন) আরটিএফ হয় তবে আপনি ওয়ার্ডে আপনার ফাইলগুলি খুলতে, সম্পাদনা করতে এবং সংরক্ষণ করতে পারেন। অবশ্যই শব্দটি দরকারী পাঠ্যের চেয়ে আরও স্রোত যোগ করবে, তবে এটি এখনও কেবলমাত্র পাঠ্য যে গিটটি আপনার জন্য মার্জ করে খুশি।

মঞ্জুর, এই সমাধানগুলি ধরে নিয়েছে যে আপনি ব্যবহার করেন না বা এমএস-নির্দিষ্ট বৈশিষ্ট্যগুলি থেকে সরে যেতে পারেন যা কেবলমাত্র এক্সেল পক্ষের সম্ভবত একটি সমস্যা।

আপনার ডকুমেন্টেশনগুলি পড়তে সক্ষম হওয়ার জন্য অবশ্যই আপনার সিস্টেমে ওয়ার্ড ইনস্টল করা প্রয়োজন যা এটি আমার কাছে একটি ভয়াবহ সম্ভাবনা ...


1
সত্যি? আপনি মার্জ সংঘাত এড়াতে সক্ষম হতে পাথরের যুগে ফিরে যাওয়ার পরামর্শ দিচ্ছেন?
পিটার নর্ডল্যান্ডার

আমি নিশ্চিত নই যে আপনি বাইনারি ফর্ম্যাটের বিপরীতে পাঠ্য বিন্যাসে সংরক্ষণের বিষয়ে পাথরযুগের ঠিক কী অনুভূত তা আমি বুঝতে পেরেছি ...
স্টিভেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.