Keyword Substitution

در svn یک قابلیتی وجود داره که میتونه یکسری کلید واژه های خاص رو با متغییرهایی نظیر شماره revision و تاریخ ویرایش و … جایگزین کنه.

پرکاربردترین کلید واژه Id است که ترکیبی از سایر کلید واژه ها شامل نام فایل، شماره rev و تاریخ و مولف است.

برای مثال ممکن است قبلا چیزی شبیه خط زیر را در ابتدای فایلی دیده باشید :

$Id: calc.c 148 2006-07-28 21:30:43Z sally $

این همان قابلیت Keyword Substitution در svn است که عبارت $Id$ را با عبارت فوق جایگزین کرده است.

با استفاده از این قابلیت وقتی از پروژه export می گیرید در ابتدای هر فایل اطلاعات مولف ، تاریخ و شماره revision را دارید که ممکنه بعدها به دردتون بخوره.

و اما نحوه فعال کردن این قابلیت :

svn propset svn:keywords "Id" myfile.php

این دستور باعث میشه کلید واژه Id برای فایل myfile.php فعال بشه. و بنابراین هر جا در این فایل عبارت $Id$ قرار داشته باشه در هنگام کامیت با اطلاعات مربوطه جایگزین میشه و در کامیتهای بعدی هم به صورت خودکار آپدیت میشه.

در ضمن اگر از TortoiseSVN  استفاده می کنید از منوی TortoiseSVN قسمت properties می توانید از این قابلیت استفاده کنید.

اطلاعات بیشتر

آپدیت : برای فعال کردن این قابلیت روی تمام فایل های php موجود در یک شاخه (و زیر شاخه های آن) به مسیر مورد نظر رفته و دستور زیر را اجرا کنید:

find -type f -name "*.php" -exec svn propset svn:keywords "Id" {} \;

برای حذف این قابلیت از روی یک فایل دستور زیر را اجرا کنید:

svn propdel svn:keywords myfile.php

برچسب‌ها:

4 دیدگاه برای “Keyword Substitution”

  1. بهروز گفته:

    سلام

    علی جان git خیلی سرتر از svn هستش. فقط همین بس که شخص لینوس تروالدز برای راحت merge کردن patch های لینوکس اون رو ساخته.

    البته نمی شه svn رو به این زودی ها کنار گذاشت چون هنوز خیلی از پروژه ها بر اساس svn کنترل می شن. اما من شخصا اگه بخوام پروژه ای رو شروع کنم حتما از git استفاده می کنم.

  2. علی گفته:

    درست میگی.
    البته من خودم bzr رو ترجیح میدم. چون git ساپورت درست و درمونی (بدون cygwin) برای ویندوز نداره و نمیشه همه رو مجبور کرد از لینوکس استفاده کنند (مخصوصا گرافیست ها رو).
    ولی درکل معماری توزیع شده نسبت به معماری کلاینت سرور مزایایی داره که اگر فرصت کنم در موردش مینویسم.
    علی رقم مزایایی که داره هنوز اکثر پروژه ها از svn استفاده میکنند. یک دلیلش اینه که از قدیم روی svn بودند، نیازشون رو جواب میده و دلیلی برای سوئیچ کردن نمی بینند. دلیل دیگه هم اینه که sourceforge و google code از bzr و git پشتیبانی نمیکنند.

  3. بهروز پولادرگ گفته:

    سلام آقا علی
    این جوری که معلومه تقریبا مجبوریم از svn استفاده کنیم – تا راحت باشیم :d
    راستی ممنون میشم این پروژه من رو ببینید و نظرتون رو بگید – http://www.flashbanneronline.com
    بسیار مطالب خوبی دارید
    در ضمن بنده به وبلاگ شما لینک دادم

    موفق و پیروز باشید همیشه

  4. نبی گفته:

    ای ول! این سوال من هم بود.
    ممنون

دیدگاهی بنویسید