গিট রেপো এবং প্রযোজনার ওয়েবসাইটটি ভেঙে ড্রুপাল কোরকে আপগ্রেড করার সেরা অনুশীলন কোনটি?


13

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

ড্রপালকে আপগ্রেড না করা পর্যন্ত এটি ভালো কৌশল বলে মনে হয়েছিল। আমি বুঝতে পেরেছিলাম যে জিনিসগুলি খারাপভাবে চলতে থাকলে আমি আবার রোল করতে সক্ষম হতে চাই এবং গিট এটির চেয়ে আরও ভাল সরঞ্জাম কী ব্যবহার করতে পারে। আমি নিজেকে ভেবেছিলাম এটি কোনও বৈশিষ্ট্য শাখার জন্য নিখুঁত পরিস্থিতি, তাই আমি একটি drupal-7.14শাখা তৈরি করেছি , .gitignoreআমার সমস্ত কোড এবং সেটিংস ফাইলগুলিকে উপেক্ষা করতে এবং ড্রুপাল ইনস্টলের অংশ যা কেবলমাত্র আমি চাই না সেগুলিতে মনোযোগ দিতে একটি শাখা তৈরি করেছি ' স্পর্শ করা হবে না। আমি হাত দিয়ে একটি আপগ্রেড করেছি (ডাউনলোড, আনজিপ, আন্টার, অনুলিপি), রোবট.এসটিএসটি এবং .htaccess এর মতো বর্ডারলাইন কেসগুলি বাছাই করে এবং নিজের নিজের সাথে ড্রুপালের .gitignore ওভাররাইট করে। আমি কিছু সেটিংস স্থির করেছিলাম যা 500 ত্রুটি থেকে পুনরুদ্ধার করার জন্য 7.14 এর সাথে নয় তবে 7.15 দিয়ে কাজ করেছিল এবং তারপরে সবকিছু নিখুঁত বলে মনে হয়েছিল। আমি শাখার নামকরণ করেছি drupal-7.15এবং আমার পথে সুখে যেতে চলেছি।

অজান্তেই আমি কী করেছি বুঝতে পেরেছি: আগে আমার মাস্টার শাখা কর্তৃক ট্রেড করা ছিল না কিন্তু কার্যনির্বাহী ডিরেক্টরিতে রেখে দেওয়া ফাইলগুলি এখন আমি যখন মাস্টার চেক আউট করার পরে ওয়ার্কিং ডিরেক্টরি থেকে সরিয়ে ফেলা হয়েছিল, যেহেতু সেগুলি আর চিহ্নযুক্ত ফাইল ছিল না! ডি আহা!

আমি drupal-7.15শাখাকে মাস্টারের সাথে একীভূত করলে আমি কোডের বিভাজন হারাব।

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

এমন আরও কিছু সমাধান থাকতে পারে যা আমি ভাবিনি।

আমি সবচেয়ে কম সম্ভাব্য ডাউনস্টাইড দিয়ে কীভাবে এ থেকে সর্বোত্তমভাবে পুনরুদ্ধার করতে পারি?

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

আপডেট 2 : সাবমডিউলগুলিকাজ করতে পারে না। প্রো গিটের মতে, "সাবমডিউলগুলি আপনাকে গিট সংগ্রহস্থলকে অন্য একটি গিট সংগ্রহস্থলের উপ-ডিরেক্টরি হিসাবে রাখতে দেয়"। ড্রুপাল এরকম কোনও সুন্দর বিচ্ছেদ সরবরাহ করে না। সমস্ত দ্রুপাল কোড একটি উপ-ডিরেক্টরিতে থাকার পরিবর্তে, সম্পর্কটি কম-বেশি বিপরীত হয়, তবে এখনও কোনও পরিষ্কার বিচ্ছিন্নতা নেই, যেহেতু আপনি নিজের .htaccess এবং robots.txt সম্পাদনা করতে পারেন, সুতরাং আপনার কোড এবং ড্রুপাল রেপো একসাথে মিশ্রিত হবে। আমি এই সমস্যার সমাধান করার চেষ্টা করছি।


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

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

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

যথেষ্ট ঠিক পরিষ্কার. ব্র্যান্ডনের সমস্যাটি মোটামুটি সাধারণ। হতে পারে আমার একটি নতুন প্রশ্ন তৈরি করা উচিত বা এটিকে নতুন করে লিখতে হবে (এবং বাকীটিকে অন্য প্রশ্নে সরিয়ে নেওয়া উচিত)। প্রথম 2-3 অনুচ্ছেদ সাধারণ। আপনি 7.x-1.0 এর গিট রেপো তৈরি করেন এবং আপনি 7.x-1.1 এ আপগ্রেড করতে চান। সমস্যা ফাইলগুলি .gitignore, .htaccess এবং robot.txt। কখনও কখনও আপনি তাদের ট্র্যাক করতে চান কারণ তারা মোডেড হয়েছে, কখনও কখনও আপনি তাদের ট্র্যাক করতে চান না কারণ তারা মোডেড হয়েছে। রেপো আপগ্রেড করার সময় আপনি কী নতুন শাখা তৈরি করবেন মার্জ বা কেবলমাত্র মাস্টার আপডেট করুন। @ লেটারিয়ান পরামর্শ?
আইস্ট্রিকার

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

উত্তর:


10

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

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

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

আপনি যখন কোর আপডেট করেন, আপনার দেব পরিবেশে শুরু করুন:

  • কাজের ডিরেক্টরিটি পরিষ্কার কিনা তা নিশ্চিত করুন
  • সর্বশেষ ডাটাবেস ( drush sql-dump) ডাম্প করুন । হয় ডাম্পের সাথে প্রতিশ্রুতিবদ্ধ বা এটি নিরাপদ কোথাও সংরক্ষণ করুন।
  • আপডেট কোর ( drush up drupal)
  • সমস্ত পরিবর্তন প্রতিশ্রুতিবদ্ধ।
  • প্যাচ ফাইল পরীক্ষা করুন। যদি কোনও প্যাচ প্রয়োগ করতে হয় তবে সেগুলি প্রয়োগ করুন এবং আরও একটি প্রতিশ্রুতিবদ্ধ করুন
  • প্রয়োজনে আপডেট.এফপি চালান (আপনি যদি আপডেটের জন্য ড্রশ ব্যবহার করেন তবে ইতিমধ্যে সম্পন্ন হয়েছে)
  • আপনার ডেভ সাইটটি পরীক্ষা করুন। যদি সবকিছু ঠিক থাকে তবে উত্পাদনে কোডটি চাপুন। drush updbউত্পাদন চালান ।
  • যদি কোনও সমস্যা হয় এবং আপনার git reset --hard HEAD~2ইতিহাস পুনরায় চালু করতে হয়, হয় আপনার রেপো রিভার্ট বা পুনরায় সেট করতে হবে ( এটি করা উচিত) অথবা আপনি ইতিহাসটি রাখতে চাইলে দুটি কমিটকে ফিরিয়ে দিন। আপনার ডাটাবেসটি ডাম্পের সাথে প্রতিস্থাপন করুন।

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

এই আরও সহজ গিট-সাইড ওয়ার্কফ্লো ব্যবহার করে আপনি সাবমডিউল ইত্যাদির জটিলতা ছাড়াই যখন আপনার প্রয়োজন হবে তখন গিটের সম্পূর্ণ শক্তি ব্যবহার করতে পারবেন যদি এটি পর্যাপ্ত না মনে হয় তবে আপনি কেন কোডের আরও বিচ্ছেদ প্রয়োজন তা ব্যাখ্যা করতে পারেন?


0

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

এই সমস্যাটি সম্পর্কে আমি একটি ব্লগ পোস্ট তৈরি করেছি যা গিটের সাথে আপনার ওয়েবসাইটে দ্রুপাল কোর আপগ্রেড করছে

বিকল্প পদ্ধতি

  1. ড্রাশ কমান্ড চালান drush up drupal
  2. সংস্করণগুলির মধ্যে পার্থক্যগুলির একটি প্যাচ প্রয়োগ করুন। দেখুন http://drupal.org/node/359234 & http://fuerstnet.de/en/drupal-upgrade-easier

আপনি এটি বর্ণনা করেন নি, তবে আপনি যদি দ্রুপাল সংস্করণগুলির মধ্যে পরিবর্তনগুলি ট্র্যাক করতে আগ্রহী হন তবে আমি শাখার পরিবর্তে ট্যাগ ব্যবহার করে এটি করব । একবার আপনি আপনার আপগ্রেড শেষ হয়ে কমিট মাস্টার , 7.x. যেমন আপনার কোড ট্যাগ


যদি আমি সঠিকভাবে বুঝতে পারি তবে আপনি পরামর্শ দিচ্ছেন যে আমি ড্রুপাল কোর কোডের সমস্তটিকে একই ভান্ডারে রেখেছি। এটি theকমত্য বলে মনে হচ্ছে। আমি অনিচ্ছুক, তবে আমাকে ছেড়ে দিতে হবে এবং সেভাবেই করা উচিত।
আইকনোক্লাস্ট

হ্যাঁ সব এক ভান্ডার মধ্যে। আমার কাছে কোর / প্রধান সংগ্রহস্থলের ভিতরে মডিউল, প্রোফাইল এবং থিম রয়েছে যা তাদের নিজস্ব গিট রিপোস। আমি জানি না সবচেয়ে ভাল উপায়, তবে এটির সবচেয়ে ভাল উপায় যা আমি জানি।
আইস্ট্রিকার

এই সমাধানটি ফিরে যাওয়ার কোনও উপায় সরবরাহ করে না। ভোট দেওয়ার জন্য আমার কারণ
আন্দ্রে বাউমিয়ার

@ সের্পিয়েন্ট: আমি ফিরে দেখি না কেন পিছিয়ে যাওয়ার উপায়ের অভাব হ্রাসের কারণ হতে হবে be যদি এটি সর্বোত্তম পদ্ধতির হয় তবে এটি যথেষ্ট। আপনি যদি এটি সর্বোত্তম পন্থা না মনে করেন তবে দয়া করে কেন তা জানায় না।
আইকনোক্লাস্ট

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

0

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

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

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

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