এক্সেল ফাইল এবং এসকিউএল স্কিমা ফাইলগুলিতে কীভাবে আরও ভাল নথি সংস্করণ নিয়ন্ত্রণ করা যায়


101

আমি বেশ কয়েকটি এক্সেল ফাইল এবং এসকিউএল স্কিমা ফাইলগুলির দায়িত্বে আছি। এই ফাইলগুলিতে আমার কীভাবে আরও ভাল নথির সংস্করণ নিয়ন্ত্রণ করা উচিত?

এই ফাইলগুলিতে আমার অংশ পরিবর্তিত (বিভিন্ন অংশ) জানতে হবে এবং সমস্ত সংস্করণ রেফারেন্সের জন্য রাখতে হবে। বর্তমানে আমি ফাইলের নামটিতে টাইম স্ট্যাম্প সংযোজন করছি তবে আমি এটি অকার্যকর বলে মনে করেছি।

আরও ভাল নথির সংস্করণ নিয়ন্ত্রণের জন্য কোনও উপায় বা ভাল অনুশীলন আছে?

যাইহোক, সম্পাদকরা আমাকে ইমেলের মাধ্যমে ফাইলগুলি প্রেরণ করেন।


4
আমি এই এক্সেল ফাইলগুলিকে সিএসভি ফাইলে রূপান্তর করতে পারি এবং তারপরে গিট ব্যবহার করে তাদের ট্র্যাক করতে পারি যাতে আমি পরিবর্তনটি দেখতে ডিফ ব্যবহার করতে পারি। অন্য কোন ভাল অনুশীলন আছে?
মার্কাস থর্নটন

অন্যান্য উত্তরগুলি দেখুন, যা আমি মনে করি আপনি যা গ্রহণ করেছেন সেটির চেয়ে ভাল।
nealmcb

উত্তর:


45

যেহেতু আপনি আপনার প্রশ্নটি ট্যাগ করেছেন আমি ধরে নিচ্ছি আপনি এর জন্য গিট ব্যবহার সম্পর্কে জিজ্ঞাসা করছেন।

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

.xlsxআপনি যদি সেগুলি সঙ্কুচিত করেন তবে একই কথা সত্য । .xlsxফাইলগুলি এক্সএমএল ফাইলগুলির ডিরেক্টরিতে জিপ আপ করা হয় ( কিভাবে তার অভ্যন্তরীণ উপ-উপাদানগুলি থেকে কোনও বৈধ এক্সএলএক্সএক্স ফাইল সঠিকভাবে একত্রিত করবেন দেখুন ? ) গিট তাদের সঙ্কোচিত না হওয়া পর্যন্ত বাইনারি হিসাবে দেখবে। .xlsxসংরক্ষণাগারটির অভ্যন্তরের পৃথক এক্সএমএল ফাইলগুলির পরিবর্তনগুলি আনজিপ করা এবং ট্র্যাক করা সম্ভব ।

আপনি এটি .xlsফাইলগুলির মাধ্যমেও করতে পারেন তবে সমস্যাটি এখানে .xlsফর্ম্যাটটি বাইনারি, তাই আপনি এটি থেকে অর্থপূর্ণ পার্থক্য পেতে পারেন না। তবে আপনি এখনও পরিবর্তনের ইতিহাস এবং নির্দিষ্ট সংস্করণগুলি চেকআউট দেখতে সক্ষম হবেন able


4
হ্যাঁ, আমি গিট জানি আমি মনে করি এসকিউএল স্কিমগুলি ট্র্যাক করার সময় গিট ভাল। এক্সেল ফাইলগুলি (.xlsx এবং .xls) হিসাবে, কারণ সেগুলি বাইনারি ফাইল, গিট ব্যবহার করে সেগুলি ট্র্যাক করা আমাকে মানবিক দৃষ্টিকোণে কী পরিবর্তন করা হয়েছে তা দেখাতে পারে না। এটাই আমি বিভ্রান্ত করছি।
মার্কাস থর্নটন

4
@ মার্কাসটর্নটন .xlsxএক্সএমএল, সুতরাং ভাল কাজ করা উচিত। সাধারণভাবে দুটি .xlsফাইল সহজেই তুলনা করার উপায় নেই । আপনি সম্ভবত একটি প্রাক-প্রতিশ্রুতিযুক্ত হুক যুক্ত করতে পারেন যা .csvএটির কাছাকাছি রাখবে এবং আপনি সেগুলি পৃথক করতে সক্ষম হবেন।
কিরেলেগিন

86

আমি এখানে যে উত্তরটি লিখেছি তা এই ক্ষেত্রে প্রয়োগ করা যেতে পারে। Xls2txt নামে একটি সরঞ্জাম .xls ফাইল থেকে মানব-পঠনযোগ্য আউটপুট সরবরাহ করতে পারে। সংক্ষেপে, আপনার এটি আপনার .gitattributes ফাইলে রাখা উচিত:

*.xls diff=xls

এবং .git / কনফিগারেশনে:

[diff "xls"]
    binary = true
    textconv = /path/to/xls2txt

অবশ্যই, আমি নিশ্চিত যে আপনি git diffঅফিস নথির জন্য খুব দরকারী একটি সরঞ্জাম তৈরি করে অন্যান্য ফাইলের ধরণের জন্যও অনুরূপ সরঞ্জামগুলি খুঁজে পেতে পারেন । আমার বিশ্বব্যাপী .gitconfig এ বর্তমানে আমার কাছে এটি রয়েছে:

[diff "xls"]
    binary = true
    textconv = /usr/bin/py_xls2txt
[diff "pdf"]
    binary = true
    textconv = /usr/bin/pdf2txt
[diff "doc"]
    binary = true
    textconv = /usr/bin/catdoc
[diff "docx"]
    binary = true
    textconv = /usr/bin/docx2txt

প্রো গিট বইটির বিষয়ে একটি ভাল অধ্যায় রয়েছে: 8.2 গিটকে অনুকূলিতকরণ - গিট বৈশিষ্ট্য


4
এটি উইন্ডোজ 7 এ আমার পক্ষে কাজ করে না। আমি উইন্ডোজের জন্য ক্যাটডোক ভার্শনটি এখান থেকে ডাউনলোড করেছি: gitconfig সম্পাদনা ও উপরে বর্ণিত বৈশিষ্ট্যগুলির তুলনায় blog.brush.co.nz/2009/09/catdoc- উইন্ডো । তবে আমি এখনও পেয়েছি: ডিফফ - একটি / এসসিআর / রিপোর্ট / এসসিআর / প্রধান / ইত্যাদি / টেম্পলেট / এনবিসিইউ.এক্সলস বি / এসসিআর / রিপোর্টস / এসসিআর / প্রধান / ইত্যাদি / টেমপ্লেট / এনবিসিইউ.এক্সএল সূচক 2476319..1daec86 100644 বাইনারি 1.7.6.msysgit.1: ফাইল / src /.../ test.xls ও b / src /.../ test.xls এলেবেলে সংস্করণ ভিন্ন
ক্যাট্রিন

এটি কি এখনও ডকটি একটি ডক ফাইল হিসাবে বা একটি পাঠ্য ফাইল হিসাবে সংরক্ষণ করছে? যদি এটি কোনও পাঠ্য ফাইল হয় তবে আপনি কীভাবে ডকটি পুনরুদ্ধার করবেন?
সিএমসিডিগ্রাগনকাই

@CMCDragonkai ফাইলটি কীভাবে সংরক্ষণ করা হয় তার উপর তার কোনও প্রভাব নেই, কেবলমাত্র ডিফ কমান্ডের আউটপুট প্রভাবিত হয়।
1615903

4
সুতরাং এটি এখনও পুরো ফাইলটি সংরক্ষণ করে, না ডিফ?
সিএমসিডিগ্রাগনকাই

4
পুনরায়: xls2txt: পোলিশ ওয়েবসাইট থেকে একটি বদ্ধ উত্স সরঞ্জাম ইনস্টল করতে অত্যন্ত অনিচ্ছুক। এই একই জিনিস হতে পারে? github.com/hroptatyr/xls2txt আর পড়ুন না ...
jcollum

22

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

https://bitbucket.org/htilabs/ooxmlunpack/downloads/OoXMLUnpack.exe

.. এবং উত্স এখানে:

https://bitbucket.org/htilabs/ooxmlunpack

এটিকে আরও কনফিগার করার জন্য আমি যদি আগ্রহী তবে আমি এই মুহুর্তে আপনাকে একটি ফোল্ডারে এক্সিকিউটেবল রাখতে হবে (যেমন আপনার উত্স সংগ্রহস্থলের মূল) এবং যখন আপনি এটি চালাবেন, এটি হবে:

  • যে কোনও .xlsx এবং .xlsm ফাইলগুলির জন্য ফোল্ডার এবং এর সাবফোল্ডারগুলি স্ক্যান করুন
  • * .Orig হিসাবে ফাইলটির একটি অনুলিপি নিন।
  • প্রতিটি ফাইল আনজিপ করুন এবং কোনও সংক্ষেপণ ছাড়াই পুনরায় জিপ করুন।
  • সংরক্ষণাগারে যে কোনও ফাইলই প্রিমি-প্রিন্ট করুন যা বৈধ এক্সএমএল।
  • সংরক্ষণাগার থেকে ক্যালচেন.এক্সএমএল ফাইলটি মুছুন (যেহেতু এটি অনেক কিছু পরিবর্তন করে এবং ফাইলটির সামগ্রীকে প্রভাবিত করে না)।
  • যেকোন অপরিকল্পিত পাঠ্য মানগুলিকে ইনলাইন করুন (অন্যথায় এগুলি একটি সন্ধানের টেবিলের মধ্যে রাখা হয়েছে যার ফলে অভ্যন্তরীণ XML- এ এমনকি একটি একক কক্ষ পরিবর্তন করা হলেও বড় পরিবর্তন আসে)।
  • সূত্রগুলি ধারণ করে এমন কোনও কক্ষ থেকে মানগুলি মুছুন (যেহেতু শীটটি খোলার পরে সেগুলি কেবল গণনা করা যায়)।
  • নিষ্ক্রিয় জিপ সংরক্ষণাগার সামগ্রীগুলি সহ একটি সাবফোল্ডার * .প্রযুক্তি তৈরি করুন।

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

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

পরীক্ষা, একটি 2 মেগাবাইট স্প্রেডশীট 21 মেগাবাইট করতে 'unpacks', কিন্তু তারপর আমি সংস্করণ কার্যকরভাবে ব্যবহার মধ্যে পার্থক্য প্রতিটি মধ্যে ছোট পরিবর্তন সঙ্গে এটি পাঁচটি সংস্করণ দোকান, কোনো 1.9 মেগাবাইট Mercurial তথ্য ফাইল, এবং ঠাহর করতে সক্ষম হন অতুলনীয়ভাবে মধ্যে পাঠ্য মোড।

এনবি: যদিও আমি মার্চুরিয়াল ব্যবহার করছি, আমার সমাধানটি অনুসন্ধান করার সময় আমি এই প্রশ্নটি পড়েছিলাম এবং সমাধান সম্পর্কে মার্চুরিয়াল-নির্দিষ্ট কিছুই নেই, গিট বা অন্য কোনও ভিসিএসের পক্ষে কাজ করা উচিত।


আমি আসলে চেষ্টা করি নি, তবে আমি ধরেই নিয়েছি - আপনি যদি চেষ্টা করে দেখেন তবে তা জেনে রাখা ভাল হবে
জন জি

@ জোনজি আমি এটি লিবারঅফিসের সাথে কাজ করতে পারি না এবং বিটবুকিট সংগ্রহস্থলের কোনও সমস্যা ট্যাব নেই। আমরা যদি কোনও সমস্যা পেতে পারি তবে অবদান রাখতে চাই!
খ্রিস্টান দোলাররা

হাই @ খ্রিস্টান-ড্রোলারস, আমি রেপোতে সমস্যাটি সক্ষম করেছি, সেখানে কিছু যুক্ত করতে নির্দ্বিধায়!
জন জি

@ জোনজি এটি দুর্দান্ত দেখায়, একটি বিস্তৃত সংস্করণের ইতিহাস থাকা অনেকগুলি নথি সম্পর্কিত পরিস্থিতিতে সত্যই কার্যকর হতে পারে! তবে ফাইলটি এক্সেলে খোলা কেন গুরুত্বপূর্ণ? আপনি কি শুধু .orig ফাইলটি ব্যবহার করতে পারবেন না? এবং আপনি কি মনে করেন যে নরমালাইজেশনগুলি কনফিগারযোগ্য / গতিশীল হতে পারে যাতে ডকএক্স / পিপিটিএক্সের জন্যও কোডটি ব্যবহার করা যায়?
জার্জেন টেভেড

10

তন্তে গিটে জিপ-ভিত্তিক ফাইল ফর্ম্যাটগুলি পরিচালনা করার জন্য খুব সহজ পদ্ধতির প্রস্তাব দিয়েছেন :

আপনার ~ / .gitconfig ফাইলটি খুলুন (ইতিমধ্যে বিদ্যমান না থাকলে তৈরি করুন) এবং নিম্নলিখিত পদটি যুক্ত করুন:

[diff "zip"]
textconv = unzip -c -a

4
তারপরে, পেং শু সমাধানটি প্রসারিত করে, ফিল্টারটি ব্যবহার করে জিপ-ভিত্তিক ফাইলগুলিকে সংস্করণ করার অনুমতি দেয়, কেবল ভিন্ন ভিন্ন
রবার্তো ক্যাবেলন

5

ওপেন ডকুমেন্ট এক্সটেনশনটি ব্যবহার করুন .fods। এটি একটি সরল, সঙ্কুচিত এক্সএমএল মার্কআপ ফর্ম্যাট যা এক্সেল এবং লিব্রেঅফিস উভয়ই খুলতে পারে এবং ভিন্নতাগুলি দেখতে ভাল লাগবে।


2

আমরা এক্সেল ওয়ার্কবুকগুলির জন্য একটি ওপেন সোর্স গিট কমান্ড লাইন এক্সটেনশন তৈরি করেছি: https://www.xltrail.com/git-xltrail

সংক্ষেপে, প্রধান বৈশিষ্ট্যটি এটি তৈরি করে git diff কোনও ওয়ার্কবুক ফাইল ফর্ম্যাটগুলিতে কাজ করে যাতে এটি ওয়ার্কবুকের ভিবিএ সামগ্রীতে ভিন্নতা দেখাতে পারে (এক পর্যায়ে, আমরা ওয়ার্কশিট সামগ্রীর জন্যও এই কাজটি করব)।

এটি এখনও প্রথম দিন তবে এটি সাহায্য করতে পারে।


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

1

অন্য উত্তরের মন্তব্যে যেমন উল্লেখ করা হয়েছে, .xlsx ফাইলগুলি কেবল এক্সএমএল।

এক্সএমএল ডিরেক্টরিতে ( gitযাযোগ্য) এটি পেতে আপনাকে একটি ডিরেক্টরিতে .xlsx ফাইলটি "আনজিপ" করতে হবে। উইন্ডোজে এটি দেখার একটি দ্রুত উপায় হ'ল <ফাইল>> এক্সএলএক্সএক্স ফাইলটিকে <ফাইল>> জিপ নামকরণ করা এবং আপনি অভ্যন্তরীণ সামগ্রী দেখতে পাবেন। আমি এটি বাইনারি সহ সংরক্ষণ করব যাতে আপনি চেকআউট করার সময়, এক্সেলে নথিটি খোলার জন্য আপনাকে অন্যান্য পদক্ষেপগুলি করতে হবে না।


4
কমপক্ষে আমি যে জিপ টুলটি ব্যবহার করি (7-জিপ) সমস্ত ফাইল খোলার / এক্সট্রাক্ট করার অনুমতি দেয় - আপনাকে সেগুলির নাম পরিবর্তন করতে হবে না।
ওনুর

1

এই এক্সেল ইউটিলিটিটি আমার পক্ষে খুব ভাল কাজ করে:

এক্সেলের জন্য সংস্করণ নিয়ন্ত্রণ

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


এটিই আমি খুঁজে পেয়েছি যে .xlsm ফাইলগুলিতে এম্বেড হওয়া মডিউলগুলির সাথে কাজ করে। আমার জানা একমাত্র বিকল্প হ'ল প্রতিটি মডিউলকে তার নিজের ফাইলে রফতানি করার জন্য ম্যাক্রো চালানো, তাদের প্রতিশ্রুতিবদ্ধ করা এবং তারপরে টানা ও মার্জ করার পরে সেগুলি আবার আমদানি করার জন্য ম্যাক্রো চালানো। xltrailএর চেয়ে অনেক সহজ।
মাইকেল হফম্যান

0

এক্সেল ফাইলগুলির সাথে আমার দৃষ্টিভঙ্গি জনের মতো, তবে কাঁচা এক্সেল পাঠ্য ডেটার সাথে কাজ করার পরিবর্তে আমি আরও বন্ধুত্বপূর্ণ ফর্ম্যাটে রফতানি করি।

আমি যে সরঞ্জামটি ব্যবহার করছি তা এখানে: https://github.com/stenci/ExcelToGit/tree/master

আপনার কেবলমাত্র .xlsm ফাইলটি ডাউনলোড করতে হবে ( এই পৃষ্ঠায় কাঁচা বার্তা দেখুন ক্লিক করুন the) রিডমে বর্ণিত এক্সেল সেটিংস পরীক্ষা করতে ভুলবেন না। আপনি পাঠ্য ফাইলে এসকিউএল ডেটা রফতানি করতে কোড যুক্ত করতে পারেন।

ওয়ার্কবুক উভয় বাইনারি এক্সেল থেকে পাঠ্য ফাইলগুলিতে রূপান্তরকারী এবং উইন্ডোজ গিট সরঞ্জামগুলির একটি প্রবর্তক এবং এটি এক্সেল সম্পর্কিত নয় এমন প্রকল্পগুলির সাথেও ব্যবহার করা যেতে পারে।

আমার কাজের সংস্করণটি কয়েক ডজন এক্সেল ওয়ার্কবুকের সাথে কনফিগার করা হয়েছে। আমি এক্সেল প্রজেক্টের জন্য গিট-গুই খোলার জন্য ফাইলটিও ব্যবহার করি, হাতে হাতে গিট ফোল্ডারটি যুক্ত করে।

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