|
2 | 2 | ==== TFS |
3 | 3 |
|
4 | 4 | (((TFS)))(((Importing, from TFS))) |
5 | | -اگر تیم شما در حال تبدیل کنترل منبع خود از TFVC به گیت است، شما میخواهید بالاترین دقت ممکن را در تبدیل داشته |
6 | | - باشید. |
7 | | - این بدان معناست که، در حالی که ما هر دو git-tfs و git-tf را برای بخش تعامل پوشش دادهایم، ما فقط به git-tfs برای |
8 | | - این بخش خواهیم پرداخت، زیرا git-tfs از شاخهها پشتیبانی میکند و این کار با استفاده از git-tf به شدت دشوار |
9 | | - است. |
| 5 | + |
| 6 | +اگر تیم شما در حال تبدیل کنترل نسخه خود از TFVC به Git است، شما به یک تبدیل با بالاترین دقت نیاز دارید. این به این معناست که، در حالی که ما هم `git-tfs` و هم `git-tf` را برای بخش ارتباط متقابل بررسی کردیم، در این بخش فقط `git-tfs` را پوشش خواهیم داد، زیرا `git-tfs` از شاخهها پشتیبانی میکند، و انجام این کار با استفاده از `git-tf` به طور غیرقابل تحملی دشوار است. |
10 | 7 |
|
11 | 8 | [NOTE] |
12 | 9 | ==== |
13 | | -این یک تبدیل یکطرفه است. |
14 | | - مخزن گیت حاصل نمیتواند با پروژه اصلی TFVC متصل شود. |
| 10 | +این یک تبدیل یکطرفه است. مخزن Git نتیجهگیری شده قادر نخواهد بود به پروژه اصلی TFVC متصل شود. |
15 | 11 | ==== |
16 | 12 |
|
17 | | -اولین کاری که باید انجام دهید نگاشت نامهای کاربری است. |
18 | | - TFVC نسبت به آنچه که در فیلد نویسنده برای تغییرات قرار میدهد، نسبتاً آزاد است، اما گیت به یک نام و آدرس ایمیل |
19 | | - قابل خواندن برای انسان نیاز دارد. |
20 | | - شما میتوانید این اطلاعات را از کلاینت خط فرمان `tf` به این صورت دریافت کنید: |
| 13 | +اولین کاری که باید انجام دهید، نگاشت نامهای کاربری است. TFVC نسبتاً آزاد است در مورد اینکه چه چیزی در فیلد نویسنده برای تغییرات وارد شود، اما Git به یک نام قابلخواندن و آدرس ایمیل نیاز دارد. شما میتوانید این اطلاعات را از طریق کلاینت خط فرمان `tf` به دست آورید، به این صورت: |
21 | 14 |
|
22 | 15 | [source,powershell] |
23 | 16 | ---- |
24 | 17 | PS> tf history $/myproject -recursive > AUTHORS_TMP |
25 | 18 | ---- |
26 | 19 |
|
27 | | -این تمام تغییرات در تاریخچه پروژه را میگیرد و در فایل AUTHORS_TMP قرار میدهد که ما آن را پردازش خواهیم کرد تا |
28 | | - دادههای ستون _User_ (دومین) را استخراج کنیم. |
29 | | - فایل را باز کنید و ببینید که کدام کاراکترها شروع و پایان ستون هستند و در دستور زیر، پارامترهای |
30 | | - `11-20` دستور `cut` را با آنها جایگزین کنید: |
| 20 | +این دستور تمام تغییرات در تاریخچه پروژه را جمعآوری میکند و آن را در فایل `AUTHORS_TMP` قرار میدهد که ما برای استخراج دادههای ستون 'User' (دومین ستون) آن را پردازش خواهیم کرد. فایل را باز کنید و پیدا کنید که ستون از کدام کاراکترها شروع و تمام میشود، سپس در دستور خط فرمان زیر، پارامترهای `11-20` دستور `cut` را با مقادیری که پیدا کردهاید جایگزین کنید: |
31 | 21 |
|
32 | 22 | [source,powershell] |
33 | 23 | ---- |
34 | 24 | PS> cat AUTHORS_TMP | cut -b 11-20 | tail -n+3 | sort | uniq > AUTHORS |
35 | 25 | ---- |
36 | 26 |
|
37 | | -دستور `cut` فقط کاراکترهای بین 11 و 20 را از هر خط نگه میدارد. |
38 | | - دستور `tail` دو خط اول را که سرصفحههای فیلد و زیرنویسهای ASCII هستند، نادیده میگیرد. |
39 | | - نتیجه همه اینها به `sort` و `uniq` ارسال میشود تا تکراریها حذف شوند و در فایلی به نام |
40 | | - `AUTHORS` ذخیره شود. |
41 | | - مرحله بعدی دستی است؛ برای اینکه git-tfs به طور مؤثر از این فایل استفاده کند، هر خط باید به این فرمت باشد: |
| 27 | +دستور `cut` تنها کاراکترهای بین 11 و 20 هر خط را نگه میدارد. دستور `tail` دو خط اول را که شامل هدرهای فیلد و خطهای زیرنویس `ASCII` هستند، نادیده میگیرد. نتیجه تمام اینها به دستور `sort` و سپس `uniq` ارسال میشود تا تکراریها حذف شوند و در فایلی به نام `AUTHORS` ذخیره میشود. گام بعدی دستی است؛ برای اینکه `git-tfs` به طور مؤثر از این فایل استفاده کند، هر خط باید به این فرمت باشد: |
42 | 28 |
|
43 | 29 | [source,text] |
44 | 30 | ---- |
45 | 31 | DOMAIN\username = User Name <[email protected]> |
46 | 32 | ---- |
47 | 33 |
|
48 | | -بخش سمت چپ فیلد "User" از TFVC است و بخش سمت راست علامت مساوی نام کاربری است که برای کامیتهای گیت استفاده |
49 | | - خواهد شد. |
| 34 | +بخش سمت چپ فیلد `User` از `TFVC` است، و بخش سمت راست علامت مساوی نام کاربری است که برای commitهای Git استفاده خواهد شد. |
50 | 35 |
|
51 | | -پس از اینکه این فایل را دارید، کار بعدی این است که یک کلون کامل از پروژه TFVC که به آن علاقه دارید، ایجاد |
52 | | - کنید: |
| 36 | +زمانی که این فایل را داشته باشید، گام بعدی این است که یک کلون کامل از پروژه TFVC که به آن علاقه دارید، ایجاد کنید: |
53 | 37 |
|
54 | 38 | [source,powershell] |
55 | 39 | ---- |
56 | 40 | PS> git tfs clone --with-branches --authors=AUTHORS https://username.visualstudio.com/DefaultCollection $/project/Trunk project_git |
57 | 41 | ---- |
58 | 42 |
|
59 | | -سپس میخواهید بخشهای `git-tfs-id` را از انتهای پیامهای کامیت پاک کنید. |
60 | | - دستور زیر این کار را انجام میدهد: |
| 43 | +در مرحله بعد، شما باید بخشهای `git-tfs-id` را از انتهای پیغامهای commit پاک کنید. دستور زیر این کار را انجام میدهد: |
61 | 44 |
|
62 | 45 | [source,powershell] |
63 | 46 | ---- |
64 | 47 | PS> git filter-branch -f --msg-filter 'sed "s/^git-tfs-id:.*$//g"' '--' --all |
65 | 48 | ---- |
66 | 49 |
|
67 | | -این از دستور `sed` در محیط Git-bash استفاده میکند تا هر خطی که با "git-tfs-id:" شروع میشود را با |
68 | | - خالی جایگزین کند، که گیت سپس آن را نادیده میگیرد. |
| 50 | +این دستور از دستور `sed` در محیط Git-bash استفاده میکند تا هر خطی که با `git-tfs-id:` شروع میشود را با فضای خالی جایگزین کند، که سپس توسط Git نادیده گرفته میشود. |
69 | 51 |
|
70 | | -پس از اینکه همه این کارها انجام شد، شما آمادهاید که یک ریموت جدید اضافه کنید، تمام شاخههای خود را فشار دهید و |
71 | | - تیم خود را از گیت شروع به کار کنید. |
| 52 | +زمانی که این مراحل انجام شد، شما آمادهاید تا یک remote جدید اضافه کنید، تمام شاخههای خود را push کنید و تیم شما از Git شروع به کار کند. |
0 commit comments