এসভিএন নির্দিষ্ট ফাইল প্রতিশ্রুতিবদ্ধ


219

কেবলমাত্র নির্দিষ্ট ফাইলগুলির একটি তালিকা প্রতিশ্রুতি দেওয়ার কোনও উপায় আছে (যেমন এসভিএন অঙ্গীকারবদ্ধ করতে চায় এমন ফাইলগুলির তালিকার মধ্যে একটি)।

আমি কোনও ইউআই ছাড়াই টার্মিনালের অধীনে ম্যাক ওএস এক্সে কাজ করছি।

উত্তর:


331

অবশ্যই। কেবল ফাইলগুলি তালিকাবদ্ধ করুন:

$ svn ci -m "Fixed all those horrible crashes" foo bar baz graphics/logo.png

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

$ svn ci -m "No longer sets printer on fire" printer-driver/*.c

আপনি এসএনএন কমান্ড ফাইল থেকে কমিট করার জন্য ফাইলগুলির তালিকা পড়তে পারেন:

$ svn ci -m "Now works" --targets fix4711.txt

1
সুতরাং, মূলত, আমার স্পষ্টভাবে ফাইলগুলির নাম রাখা উচিত? আমি শুধু বলতে পারি না এই বিশেষ ফাইলটি স্পর্শ করবেন না?
0100110010101

16
আপনি করতে পারেন: এসএনএন | কাট-সি 9-> টার্গেট.টেক্সট, তারপরে নির্দিষ্ট ফাইলটি মুছে ফেলার জন্য টার্গেট.টেক্সট ফাইলটি সম্পাদনা করুন এবং ফাইললিস্ট নির্দিষ্ট করার জন্য --targets প্যারামিটার ব্যবহার করুন।
মূক্ত

17
আমি মনে করি যে আমার নতুন চ্যালেঞ্জটি এমন একটি বাগ তৈরি করা যা মুদ্রকটিকে আগুন ধরিয়ে দেয়।
জেমস ওয়েবস্টার

3
এটি একইভাবে করুণ ও হাস্যকর। মঞ্চের কোনও অঞ্চল নেই। svn addসংগ্রহস্থলগুলিতে ফাইল যুক্ত করতে ব্যবহৃত হয়।
কান্ডিনস্কি

68

চেঞ্জলিস্ট ব্যবহার করুন। ফাইলগুলি নির্দিষ্ট করার সুবিধাটি হ'ল আপনি যা করতে চেয়েছিলেন তা যাচাই করা এবং নিশ্চিত করতে পারবেন যে আপনি প্রতিশ্রুতি দেওয়ার আগে অন্তর্ভুক্ত ছিলেন।

$ svn changelist fix-issue-237 foo.c 
Path 'foo.c' is now a member of changelist 'fix-issue-237'.

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

$ svn status
A       bar.c
A       baz.c

--- Changelist 'fix-issue-237':
A       foo.c

অবশেষে, আপনি যা পরিবর্তন করতে চেয়েছিলেন তা করতে এটি বলুন।

$ svn commit --changelist fix-issue-237 -m "Issue 237"

পয়েন্ট উত্তরের জন্য +1। চেঞ্জলিস্টগুলি আসলেই যাওয়ার উপায়!
মিরো মারকারাভনেস

1
আপনি যদি একটি পরিবর্তন তালিকায় নতুন ডিরেক্টরি যুক্ত করতে চান তবে প্রথমে svn changelist fix-issue-237 --recursive path/to/directory
এসএনএন

আসলে নতুন ডিরেক্টরিগুলির সাথে
চেঞ্জলিস্টগুলি

1
@fschmengler: এসভিএন একটি ভয়ঙ্কর সরঞ্জাম। আমি কেবল এটির খারাপ কাজটি সর্বাধিক করার চেষ্টা করছিলাম। গিটে স্যুইচ করুন : পি
jcwenger

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

38

আপনি মূলত যে ফাইলগুলি কমান্ড লাইনে প্রতিশ্রুতিবদ্ধ করতে চান তা রাখুন

svn ci file1 file2 dir1/file3

1
সুতরাং, মূলত, আমার স্পষ্টভাবে ফাইলগুলির নাম রাখা উচিত? আমি শুধু বলতে পারি না এই বিশেষ ফাইলটি স্পর্শ করবেন না?
0100110010101

2
যদি তর্ক ছাড়াই চালানো হয় এসএনএন যদি পরিবর্তিত সমস্ত ফাইলকে যুক্তি হিসাবে চালিত হয় তবে এই ফাইলটি যদি একটি ডিরেক্টরিতে চালিত হয় তবে ডিরেক্টরিতে চালিত সমস্ত ডিরেক্টরি ফাইল
কমিট হয়

22

আমার সাবস্ট্রেশন রাষ্ট্রের কারণে আমাকে সৃজনশীল হতে হয়েছিল। svn stদেখানো হয়েছে M, Aএবং ~অবস্থা। আমি কেবল চেয়েছিলাম Mএবং Aতাই ...

svn st | grep ^[A\|M] | cut -d' ' -f8- > targets.txt

এই কমান্ডের দ্বারা সব লাইন আউটপুট এটি বলছেন svn stযে শুরু MবাA স্পেস ডিলিমিটার দিয়ে কাটা করুন, তারপরে শেষ পর্যন্ত 8 টি কলম পান। টার্গেট.টেক্সট এ ডাম্প করুন এবং ওভাররাইট করুন।

তারপরে ফাইল তালিকাকে আরও ছাঁটাই করতে টার্গেট.টেক্সট পরিবর্তন করুন। তারপরে প্রতিশ্রুতিবদ্ধ করতে নীচে দৌড়াও:

svn ci -m "My commit message" --targets targets.txt

সম্ভবত সবচেয়ে সাধারণ ব্যবহারের ক্ষেত্রে না, তবে আশা করি এটি কাউকে সহায়তা করে someone


2
আপনি grep -v '^~'যা চান তা কালো তালিকাভুক্ত করতেও ব্যবহার করতে পারেন।
মার্টিন কনেকনি

10

যেমন দেখানো স্পষ্টভাবে ফাইল তালিকা এছাড়া বিনোদনWienczny , আপনি সেটআপ পরিবর্তন তালিকা করতে পারেন এবং এই চেক ইন করে। এগুলি আপনাকে একই কাজের অনুলিপিতে পরিবর্তনের সেটগুলি পরিচালনা করতে দেয় manage

আপনি তাদের সম্পর্কে দুর্দান্ত এসভিএন বইয়ের অনলাইন সংস্করণে পড়তে পারেন ।


7

এই স্ক্রিপ্ট চেষ্টা করুন ..

#!/bin/bash
NULL="_"
for f in `svn st|grep -v ^\?|sed s/.\ *//`; 
     do LIST="${LIST} $f $NULL on"; 
done
dialog --checklist "Select files to commit" 30 60 30 $LIST 2>/tmp/svnlist.txt
svn ci `cat /tmp/svnlist.txt|sed 's/"//g'`

1

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

আমি জানি এই কৌশলটি কোনও খারাপ দিক নয়।

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