Skip to content

Commit 745864c

Browse files
authored
Merge pull request #28 from Davoodeh/master
up to chapter 6
2 parents 192d646 + 9b5ea85 commit 745864c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1495
-1490
lines changed

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# همکاری در پروگیت (ویرایش دوم)
1+
# همکاری در پرو گیت (ویرایش دوم)
22

33

44

@@ -65,4 +65,4 @@ Should your changes appear in a printed edition, you'll be included in the [cont
6565

6666
## ترجمه‌ها
6767

68-
اگر می‌خواهید در ترجمه پروگیت به زبان خودتان کمک کنید نگاهی به [فایل راهنمای ترجمه](TRANSLATING.md) بیاندازید.
68+
اگر می‌خواهید در ترجمه پرو گیت به زبان خودتان کمک کنید نگاهی به [فایل راهنمای ترجمه](TRANSLATING.md) بیاندازید.

LICENSE.asc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
این اثر تحت لایسنس Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported لایسنس شده است.
2-
برای مشاهده یک کپی از این لایسنس به https://creativecommons.org/licenses/by-nc-sa/3.0 مراجعه کنید یا به Creative Commons در PO Box 1866، Mountain View، CA 94042، USA نامه بزنید.
1+
این اثر تحت مجوز Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported لایسنس شده است.
2+
برای مشاهده یک کپی از این مجوز به https://creativecommons.org/licenses/by-nc-sa/3.0 مراجعه کنید یا به Creative Commons در PO Box 1866، Mountain View، CA 94042، USA نامه بزنید.

README.asc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
= پروگیت، ویرایش دوم
1+
= پرو گیت، ویرایش دوم
22

3-
به ویرایش دوم کتاب پروگیت خوش آمدید.
3+
به ویرایش دوم کتاب پرو گیت خوش آمدید.
44

55
نسخه آنلاین این کتاب را اینجا ببینید. http://git-scm.com/book/fa/v2
66

7-
همانند ویرایش اول، ویرایش دوم پروگیت هم متن-باز تحت لایسنس «کریتیو کامنز» است. (Creative Commons)
7+
همانند ویرایش اول، ویرایش دوم پرو گیت هم متن-باز تحت لایسنس «کریتیو کامنز» است. (Creative Commons)
88

99
از زمان متن-باز شدن نسخه اول تغییراتی اعمال شده.
1010
ابتدا اینکه برای متن کتاب، ما از مارک‌دان به قالب شگفت‌انگیز اسکی‌داک مهاجرت کرده‌ایم. رفرنس سریع اسکی‌داک را می‌توانید در https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/[اینجا] پیدا کنید.
@@ -42,6 +42,8 @@ Converting to PDF...
4242
در بعضی سیستم‌ها ممکن است خروجی پی‌دی‌اف خوانا نباشد و یا مشکلات قالبی (راست‌چین بودن) و... داشته باشد.
4343
پیشنهاد می‌شود که اسکی‌داکتر را بازتنظیم کنید و از فونت‌سازگار استفاده کنید.
4444

45+
خروجی پیشنهادی پرو گیت فارسی اچ‌تی‌ام‌ال است.
46+
4547
با توجه به دشواری بازتنظیمی اسکی‌داکتر ممکن است بخواهید از خروجی اچ‌تی‌ام‌ال استفاده کرده یا در صورت نیاز به پی‌دی‌اف، خروجی اچ‌تی‌ام‌ال را توسط ابزاری مانند مرورگر به پی‌دی‌اف تبدیل کنید.
4648

4749
=== ترجمهٔ ناقص

TRANSLATING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
پایه خود را روی دومین ویرایش کتاب که در [اینجا](https://github.com/progit/progit2) موجود است قرار دهید. برای این کار:
6262
1. [کد ایزو ۶۳۹](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) صحیح زبانتان را انتخاب کنید.
6363
1. یک [سازمان گیت‌هابی](https://help.github.com/articles/creating-a-new-organization-from-scratch/) با کد مرحله قبل روی گیت‌هاب بسازید.
64-
1. یک پروژه با نام پروگیت۲ در آن بسازید: ``progit2``
64+
1. یک پروژه با نام progit2 در آن بسازید: ``progit2``
6565
1. ساختار این پروژه را در پروژه خود کپی کرده و شروع به ترجمه کنید.
6666

6767
### بروزرسانی وضعیت ترجمه‌تان

TRANSLATION_NOTES.asc

Lines changed: 73 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55

66
به‌خاطر داشته باشید که به عنوان یک مترجم می‌توانید اختیار کرده و فایل رید‌می را ویرایش کنید تا موارد خاص مرتبط با ترجمه شما را نیز شامل شود.
77

8+
خارج از اختیارات ذکر شده، به متن و محتوای کتاب وفادار بمانید. این یک فورک ترجمه است. اگر احساس می‌کنید که مطلبی در کتاب به درستی بیان نشده است یا می‌تواند تغییر کند،
9+
تغییر خود را به متن اصلی (انگلیسی) کتاب ارائه کنید. این فورک سعی می‌کند همیشه با متن اصلی هماهنگ و بروز بماند، اگر تغییر شما در منبع اصلی کتاب تأیید شد به اینجا نیز راه خواهد یافت.
10+
811
=== وضعیت ترجمه
912

1013
* همچنان که متن ترجمه می‌شود، لطفاً فایل جی‌سان استاتوس را بروزرسانی کنید تا درصد احتمالی اینکه هر فایل به چه مقدار ترجمه شده است قابل تخمین باشد.
@@ -15,10 +18,14 @@
1518

1619
=== استاندارد نگارشی
1720

21+
* هدرها و تیترها حدالامکان فارسی باشند.
22+
1823
* تلاش بر آن باشد که هرگز خطی از ۲۰۰ حرف تجاوز نکند.
1924

2025
* جهت جلوگیری از بهم ریختگی در گیت کلاینت‌ها، کامیت مسیج‌ها به انگلیسی نوشته شوند.
2126

27+
* گاهی لازم است تا استاندارد جهت نمایش درست در خروجی شکسته شود و یکپارچگی بهم بریزد (مثلاً ترجمه متناسب با جدول کلمات نباشد). در این شرایط اولویت با خروجی (بخصوص اچ‌تی‌ام‌ال) است.
28+
2229
* در نوشتن اعداد درون متنی اولویت با ارقام است. (به جای «هزار و یک» ۱۰۰۱ نوشته شود.)
2330

2431
* اعداد به خط‌الرسم فارسی (۱۲۳۴۵۶۷۸۹۰) نوشته شوند. مگر آنکه یک لیست ترتیبی باشند. به علت لاتین-پایه بودن اسکی‌داکتر نیاز است که لیست‌های ترتیبی یا شمارشی
@@ -58,57 +65,78 @@
5865
.لیست واژگان
5966
|===
6067
|واژه یا عبارت |معادل احتمالی انگلیسی
61-
62-
63-
|??? |Fast-Forward
64-
|کنترل نسخه |Version Control
65-
|ساب‌ورژن |Subversion
66-
|چک‌اوت |Checkout
67-
|جست‌وجو |Search
68-
|پیش‌فرض |Default
69-
|وبسایت |Website
70-
|گیت‌هاب |GitHub
71-
|دبیان |Debian
72-
|وابستگی |Dependency
68+
|ASCII |ASCII
69+
|Fast-Forward |Fast-Forward
70+
|HTTP غیرهوشمند |Dumb HTTP
71+
|HTTP هوشمند |Smart HTTP
72+
|آبجکت |Object
73+
|آپشن |Option (e.g:--global)
74+
|آینه |Mirror
75+
|ادمین |Administrator
76+
|انتقال به برنچ |Switch to a/the branch
77+
|ایشو |Issue
78+
|باقدمت |Long-term
79+
|بالادست |Upstream
80+
|برنچ |Branch
81+
|برنچ پیگیر |Tracking Branch
82+
|برچسب توضیحی |Annotated tag
83+
|برچسب سبک |Lightweight tag
7384
|بسته |Package
85+
|بلاب |Blob
7486
|تاربال |Tarball
75-
|آینه |Mirror
76-
|کامپایل |Compile
77-
|کامپیوتر |Computer
78-
|آپشن |Option (e.g:--global)
79-
|کلید |Flag/Switch (e.g:--global)
80-
|گزینه |Option
81-
|پیکربندی |Configuration
87+
|تعویض برنچ |Branch switching
88+
|جست‌وجو |Search
89+
|خلاصه |Summary
90+
|خودمیزبان |Self-hosting
91+
|دبیان |Debian
92+
|درپی-ریموت |Remote-Tracking
8293
|دستور گیت کانفیگ |git config Command
83-
|ادمین |Administrator
94+
|دستگاه/سیستم |Machine
95+
|دوشاخه |Divergent
96+
|دیمن |Daemon
97+
|دیمنیزه |Daemonize
98+
|ررره |Rerere
99+
|رهگیری‌شده |Tracked
100+
|رهگیری‌شده |Tracked
101+
|رهگیری‌نشده |Untracked
102+
|رهگیری‌نشده |Untracked
103+
|روت |Root
104+
|ریبیس |Rebase
105+
|ریورت |Revert
106+
|ساب‌ورژن |Subversion
84107
|سوپریوزر |Superuser
85-
|ویرایشگر |Text Editor
86-
|نوت‌پد++ |Notepad++
87-
|ویم |Vim
88-
|صفحهٔ راهنما |manpage
89-
|برنچ |Branch
90108
|شاخه‌سازی |Branching
91-
|مرج |Merge
109+
|شورت‌لاگ |Shortlog
110+
|صفحهٔ راهنما |manpage
111+
|قالب |Format
112+
|لیست کردن |List
113+
|متادیتا |Metadata
92114
|محلی |Local
115+
|مخزن بر |Bare repository
116+
|مدیر-یکپارچه‌سازی |Integration-Manager
117+
|مرج |Merge
118+
|مرجع ریموت |Remote refrence
119+
|نام‌های مستعار |Aliases
120+
|نشان بده |Show
93121
|نشانگر |Pointer
94-
|آبجکت |Object
122+
|نمایش بده |Display
123+
|نوت‌پد++ |Notepad++
124+
|هارددیسک |Hard drive/disk
125+
|هندلر |Handler
126+
|وابستگی |Dependency
95127
|والد |Parent
96-
|بلاب |Blob
97-
|روت |Root
98-
|متادیتا |Metadata
99-
|انتقال به برنچ |Switch to a/the branch
100-
|تعویض برنچ |Branch switching
101-
|ریورت |Revert
102-
|ایشو |Issue
103-
|درپی-ریموت |Remote-Tracking
104-
|مرجع ریموت |Remote refrence
105-
|بالادست |Upstream
106-
|برنچ پیگیر |Tracking Branch
107-
|ریبیس |Rebase
108-
|دوشاخه |Divergent
109-
|مدیر-یکپارچه‌سازی|Integration-Manager
110-
|باقدمت|Long-term
111-
|چری-پیک (در مواردی که نیاز به ترجمه مفهومی فارسی است «دست‌چینی»)|Cherry-pick
112-
|ررره|Rerere
113-
|شورت‌لاگ|Shortlog
128+
|وبسایت |Website
129+
|ویرایشگر |Text Editor
130+
|ویم |Vim
131+
|پیش‌فرض |Default
132+
|پیکربندی |Configuration
133+
|چری-پیک (در مواردی که نیاز به ترجمه مفهومی فارسی است «دست‌چینی») |Cherry-pick
134+
|چک‌اوت |Checkout
135+
|کامپایل |Compile
136+
|کامپیوتر |Computer
137+
|کلید |Flag/Switch (e.g:--global)
138+
|کنترل نسخه |Version Control
139+
|گزینه |Option
140+
|گواهی |Credential
141+
|گیت‌هاب |GitHub
114142
|===

book/01-introduction/sections/about-version-control.asc

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,21 @@
33
(((version control)))
44
«کنترل نسخه» چیست و چرا باید بدان پرداخت؟ کنترل نسخه سیستمی است که تغییرات را در فایل یا دسته‌ای از
55
فایل‌ها ذخیره می‌کند و به شما این امکان را می‌دهد که در آینده به نسخه و نگارش خاصی برگردید.
6-
برای مثال‌های این کتاب شما از سورس کد نرم‌افزار به عنوان فایل‌هایی که نسخه آنها کنترل می‌شود استفاده می‌کنید.
6+
برای مثال‌های این کتاب، شما از سورس کد نرم‌افزار به عنوان فایل‌هایی که نسخه آنها کنترل می‌شود استفاده می‌کنید.
77
اگرچه در واقع می‌توانید تقریباً از هر فایلی استفاده کنید.
88

99
اگر شما یک گرافیست یا طراح وب هستید و می‌خواهید نسخه‌های متفاوت از عکس‌ها و قالب‌های خود داشته باشید (که احتمالاً می‌خواهید)، یک سیستم کنترل نسخه (Version Control System (VCS)) انتخاب خردمندانه‌ای است.
10-
یک VCS به شما این امکان را می‌دهد که فایل‌های انتخابی یا کل پروژه را به یک حالت قبلی خاص برگردانید، روند تغییرات را بررسی کنید، ببینید چه کسی آخرین‌بار تغییری ایجاد کرده که احتمالاً مشکل آفرین شده،
10+
یک VCS به شما این امکان را می‌دهد که فایل‌های انتخابی یا کل پروژه را به یک حالت قبلی خاص برگردانید، روند تغییرات را بررسی کنید، ببینید چه کسی آخرین بار تغییری ایجاد کرده که احتمالاً مشکل آفرین شده،
1111
چه کسی، چه وقت مشکلی را اعلام کرده و...
12-
استفاده از یک VCS همچنین به این معناست که اگر شما در حین کار چیزی را خراب کردید و یا فایل‌هایی از دست رفت، به سادگی می توانید کارهای انجام شده را بازیابی نمایید.
12+
استفاده از یک VCS همچنین به این معناست که اگر شما در حین کار چیزی را خراب کردید و یا فایل‌هایی از دست رفت، به سادگی می‌توانید کارهای انجام شده را بازیابی نمایید.
1313
همچنین مقداری سربار به فایل‌های پروژه‌تان افزوده می‌شود.
1414

1515
==== سیستم‌های کنترل نسخهٔ محلی
1616

1717
(((version control,local)))
1818
روش اصلی کنترل نسخهٔ کثیری از افراد کپی کردن فایل‌ها به پوشه‌ای دیگر است (احتمالاً با تاریخ‌گذاری، اگر خیلی باهوش باشند).
1919
این رویکرد به علت سادگی بسیار رایج است هرچند خطا آفرینی بالایی دارد.
20-
فراموش کردن اینکه در کدام پوشه بوده‌اید و نوشتن اشتباهی روی فایل یا فایل‌هایی که نمی‌خواستید روی آن بنویسید بسیار ساده است.
20+
فراموش کردن اینکه در کدام پوشه بوده‌اید و نوشتن اشتباهی روی فایل یا فایل‌هایی که نمی‌خواستید روی آن بنویسید بسیار آسان است.
2121

2222
برای حل این مشکل، سال‌ها قبل VCSهای محلی را توسعه دادند که پایگاه داده‌ای ساده داشت که تمام تغییرات فایل‌های تحت مراقبتش را نگهداری می‌کرد.
2323

@@ -28,36 +28,35 @@ image::images/local.png[Local version control diagram]
2828
https://www.gnu.org/software/rcs/[RCS] با نگه داشتن مجموعه‌هایی از پچ‌ها (Patch/وصله) -- همان تفاوت‌های بین نگارش‌های گوناگون فایل‌ها -- در قالبی ویژه کار می‌کند؛
2929
پس از این، با اعمال پچ‌ها می‌تواند هر نسخه‌ای از فایل که مربوط به هر زمان دلخواه است را بازسازی کند.
3030

31-
==== سیستم‌های کنترل نسخه ی متمرکز
31+
==== سیستم‌های کنترل نسخهٔ متمرکز
3232

3333
(((version control,centralized)))
34-
چالش بزرگ دیگری که مردم با آن روبرو می شوند نیاز به همکاری با توسعه‌دهندگانی است که با سیستم‌های دیگر کار می‌کنند.
34+
چالش بزرگ دیگری که مردم با آن روبرو می‌شوند نیاز به همکاری با توسعه‌دهندگانی است که با سیستم‌های دیگر کار می‌کنند.
3535
دربرخورد با این چالش سیستم‌های کنترل نسخه متمرکز (Centralized Version Control System (CVCS)) ایجاد شدند.
36-
این قبیل سیستم‌ها (چون CVS، ساب‌ورژن و Preforce) یک سرور دارند که تمام فایل‌های نسخه‌بندی شده را در بر دارد و تعدادی کلاینت (Client/خدمت‌گیرنده)
36+
این قبیل سیستم‌ها (مثل CVS، ساب‌ورژن و Preforce) یک سرور دارند که تمام فایل‌های نسخه‌بندی شده را در بر دارد و تعدادی کلاینت (Client/خدمت‌گیرنده)
3737
که فایل‌هایی را از آن سرور چک‌اوت (Checkout/وارسی) می‌کنند. (((CVS)))(((Subversion)))(((Perforce))) سال‌های سال این روش استاندارد کنترل نسخه بوده است.
3838

3939
.کنترل نسخه متمرکز.
4040
image::images/centralized.png[Centralized version control diagram]
4141

4242

4343
این ساماندهی به ویژه برای VCSهای محلی منافع و مزایای بسیاری دارد. به طور مثال هر کسی به میزان مشخصی از فعالیت‌های دیگران روی پروژه آگاهی دارد.
44-
مدیریان دسترسی و کنترل مناسبی بر این دارند که چه کسی چه کاری می تواند انجام دهد؛
44+
مدیران دسترسی و کنترل مناسبی بر این دارند که چه کسی چه کاری می‌تواند انجام دهد؛
4545
همچنین مدیریت یک CVCS خیلی آسان‌تر از درگیری با پایگاه‌داده‌های محلی روی تک تک کلاینت‌هاست.
4646

47-
هرچند که این گونه ساماندهی معایب جدی نیز دارد. واضح‌ترین آن رخدادن خطا در سروری که نسخه‌ها در آن متمرکز شده است.
48-
اگر که سرور برای یک ساعت غیرفعال باشد، در طول این یک ساعت هیچ‌کس نمی تواند همکاری یا تغییراتی که انجام داده است را ذخیره نماید.
47+
هرچند که این گونه ساماندهی معایب جدی نیز دارد. واضح‌ترین آن رخدادن خطا در سروری که نسخه‌ها در آن متمرکز شده‌اند است.
48+
اگر که سرور برای یک ساعت غیرفعال باشد، در طول این یک ساعت هیچ‌کس نمی‌تواند همکاری یا تغییراتی که انجام داده است را ذخیره نماید.
4949
اگر هارددیسک سرور مرکزی دچار مشکلی شود و پشتیبان مناسبی هم تهیه نشده باشد
5050
همه چیز (تاریخچه کامل پروژه بجز اسنپ‌شات‌هایی که یک کلاینت ممکن است روی کامپیوتر خود ذخیره کرده باشد) از دست خواهد رفت.
51-
VCSهای محلی نیز همگی این مشکل را دارند -- هرگاه کل تاریخچه پروژه را در یک مکان واحد ذخیره کنید، خطر از دست‌دادن همه چیز را به جان می‌خرید.
51+
VCSهای محلی نیز همگی این مشکل را دارند -- هرگاه کل تاریخچه پروژه را در یک مکان واحد ذخیره کنید، خطر از دست دادن همه چیز را به جان می‌خرید.
5252

5353
==== سیستم‌های کنترل نسخه توزیع‌شده
5454

5555
(((version control,distributed)))
56-
5756
اینجا است که سیستم‌های کنترل نسخه توزیع‌شده (Distributed Version Control System (DVCS)) نمود پیدا می‌کنند.
5857
در یک DVCS (مانند گیت، Mercurial، Bazaar یا Darcs) کلاینت‌ها صرفاً به چک‌اوت کردن آخرین اسنپ‌شات فایل‌ها اکتفا نمی‌کنند؛
59-
بلکه آن‌ها کل مخزن (Repository) را کپی عینی یا آینه (Mirror) می‌کنند که شامل تاریخچه کاملش هم می‌شود.
60-
بنابراین اگر هر سروری که سیستم‌ها به واسطه آن در حال تعامل با یکدیگر هستند متوقف و از کار بیافتد، با کپی مخرن هر کدام از کاربران بر روی سرور، می‌توان آن را بازیابی کرد.
58+
بلکه آن‌ها کل مخزن (Repository) را کپی عینی یا آینه (Mirror) می‌کنند که شامل تاریخچه کامل آن هم می‌شود.
59+
بنابراین اگر هر سروری که سیستم‌ها به واسطه آن در حال تعامل با یکدیگر هستند متوقف شده و از کار بیافتد، با کپی مخرن هر کدام از کاربران بر روی سرور، می‌توان آن را بازیابی کرد.
6160
در واقع هر کلون، پشتیبان کاملی از تمامی داده‌ها است.
6261

6362

0 commit comments

Comments
 (0)