আমি কেন একটি এসভিএন কমিট বার্তা সম্পাদনা করতে পারি না?


12

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


7
Thedtytywtf- এ ড্যাভ.ক্যাপের গল্পটির কথা মনে করিয়ে দেয়
ফ্যালকন

1
কেবল গিট ব্যবহার করুন , এটি কমিটগুলি মার্জ করতে, বার্তাগুলি সম্পাদনা করতে এবং আপনার ইতিহাসের সাথে আপনার যা যা পছন্দ করে তা করতে দেয়।
এসকে-যুক্তি

বা যদি আপনি না পারেন তবে ব্যবহার করুন git-svnএবং নুনই হবে বুদ্ধিমান।
ম্যাথু Scharley

@ ম্যাথিউ: গিট-এসএনএন দিয়ে পৃথিবীতে কীভাবে আপনি ইতিহাস-সম্পাদনা-অক্ষম এসএনএন রেপোতে ইতিহাস পরিবর্তন করতে সক্ষম হন?
gbjbaanb

2
@gbjbaanb: আপনি যদি ইতিমধ্যে এসভিএন সার্ভারে চাপ দিয়ে থাকেন তবে তা হবে না। তবে আপনি যদি কেবল স্থানীয়ভাবে কমিট করে থাকেন তবে লাইভ রেপোতে চাপ দেওয়ার আগে আপনি প্রতিশ্রুতি বার্তাটি পরিবর্তন করতে পারেন।
ম্যাথিউ Scharley

উত্তর:


15

SVN প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী মতে, আপনি সংগ্রহস্থলের প্রশাসক এটি সক্ষম থাকে পারেন অথবা আপনি সংগ্রহস্থলের স্থানীয় প্রশাসনিক অ্যাক্সেস না থাকে

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


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

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

2
আমি আবিষ্কার একটি কমিট সেই বার্তার আমি প্রবেশ এক মাস আগে বিভ্রান্তিকর হয়, বিভ্রান্তিকর, এবং নিতান্ত ধরুন ভুল । আমি কি একটি সঠিক সংকেত যোগ করতে সক্ষম হব না যা ভুল বার্তাটি প্রত্যেকে দেখবে? (আমি সম্মত হই যে মূল বার্তাটি সহজেই সংশোধিত হওয়া উচিত এবং পরিবর্তনটি নিজেই ট্র্যাক করে টাইমস্ট্যাম্প করা উচিত But তবে আমি একমত নই যে এটি "পরিবর্তিত ইতিহাস" বলে মনে করে।)
ডেভিড শোয়ার্জ

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

3
আপনি সত্যিই একটি স্ব-প্যারডি মত চেহারা শুরু। "এটি সঠিক হতে হবে, সুতরাং এটি কখনই সংশোধন করা উচিত নয়।"
ডেভিড শোয়ার্টজ

5

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

এখানে এসভিএন FAQ দেখুন

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

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

$svn propedit -r N --revprop svn:log URL 
$svn propset -r N --revprop svn:log "new log message" URL 

যেখানে এন হ'ল সংশোধন নম্বর যার লগ বার্তাটি আপনি পরিবর্তন করতে চান এবং URL হ'ল সংগ্রহস্থলের অবস্থান। যদি আপনি এই কমান্ডটি একটি কার্যকারী অনুলিপি থেকে চালনা করেন তবে আপনি URL টি ছেড়ে দিতে পারেন।

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

$ svnadmin setlog REPOS_PATH -r N FILE

যেখানে REPOS_PATH হ'ল সংগ্রহস্থল অবস্থান, N হল সেই সংশোধন নম্বর যার লগ বার্তা আপনি পরিবর্তন করতে চান এবং ফাইলটি নতুন লগ বার্তা সম্বলিত একটি ফাইল। যদি "প্রাক-রেভপ্রপ-চেঞ্জ" হুকটি না থাকে (বা কোনও কারণে আপনি হুক স্ক্রিপ্টটি বাইপাস করতে চান), আপনি - বাইপাস-হুক বিকল্পটিও ব্যবহার করতে পারেন। তবে আপনি যদি এই বিকল্পটি ব্যবহার করার সিদ্ধান্ত নেন তবে খুব সাবধান হন। আপনি পরিবর্তনের ইমেল বিজ্ঞপ্তি বা সংশোধন বৈশিষ্ট্যগুলি ট্র্যাক করে রাখে এমন ব্যাকআপ সিস্টেমগুলির মতো বিষয়গুলিকে বাইপাস করতে পারেন।

স্ট্যাক ওভারফ্লোতে অনুরূপ প্রশ্নের জবাবে কামিল কিসিয়েলের উত্তর ।


আপনি যখন স্ট্যাকওভারফ্লো থেকে কোনও উত্তর আটকে দিচ্ছেন, আপনার কমপক্ষে এটিকে একটি উদ্ধৃতি হিসাবে চিহ্নিত করা উচিত এবং ওপিকে (এই ক্ষেত্রে কামিল কিসিয়েল) ক্রেডিট দেওয়া উচিত। মূলটির সাথে লিঙ্ক করুন : স্ট্যাকওভারফ্লো .com/ প্রশ্নগুলি / 43৩০৩৮৩/২ দয়া করে আপনার উত্তরটি সম্পাদনা করুন বা আমি আপনাকে নীচে নামাতে চলেছি।
ফ্যালকন

4

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

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


তারা প্রতিশ্রুতি বার্তার একাধিক সংস্করণ মঞ্জুর করতে পারে ...
অ্যালেক্স ফেনম্যান

1
@ l0b0 মিথ্যা, বিভ্রান্তিকর, বা ক্ষতির ঝুঁকিপূর্ণ তথ্য প্রচার করা চালিয়ে যাওয়া অবজেক্টিকভাবে খারাপ নয়? রেকর্ড সংরক্ষণের জন্য খারাপ ডেটা shোকানো দরকার হয় না।
ব্যবহারকারী 179700

1
@ ব্যবহারকারী 179700: আপনি ঠিক বলেছেন। আমি দেখেছি সমস্ত ভিসিএসে একটি মৌলিক ত্রুটিযুক্ত নকশা অনুমান রয়েছে: একটি প্রতিশ্রুতিবদ্ধতার একটি কমিট বার্তা রয়েছে, যা অচল। অ্যালেক্স যেমন বলেছে, আমাদের "প্রতিশ্রুতি বার্তার একাধিক সংস্করণকে অনুমতি দেওয়া উচিত"।
l0b0

@ l0b0 আমি এই প্রশ্নটি যতই বিবেচনা করব ততই আকর্ষণীয় বোধ করছি। আমার প্রথম প্রতিক্রিয়া ছিল লাইনের পাশাপাশি, আরও সাবধানে লিখুন। বর্তমান অনুশীলনটি প্রক্রিয়াটিকে ব্যাহত করছে বলে মনে হচ্ছে। আমিও আশ্চর্য হই যে অন্য কোনও সিস্টেম আরও শক্তিশালী অনুশীলন বাস্তবায়ন করে কিনা। অন্য প্রশ্ন methinks জন্য সময়। +1
ব্যবহারকারী 179700

@ ব্যবহারকারী 179700: আমি বর্তমানে এমন একটি স্ক্রিপ্ট লিখে যাবার প্রত্যাশা করছি যা আপনাকে একটি প্রতিশ্রুতি বার্তা পরিবর্তন করতে দেয় তবে কেবলমাত্র (টাইমস্ট্যাম্পড) অতিরিক্ত স্ট্রিং যুক্ত করে। এটি আপনাকে নিরীক্ষণের ট্রেইল সংরক্ষণের সময় ভুলগুলি সংশোধন করতে দেয়।
Tynam
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.