سؤال

أنا أعمل على العديد من المستودعات في العمل وأرغب في أن يتم إبلاغها ، إذا كان أي شيء يتغير في مستودعات SVN.

لقد صنعت نصًا صغيرًا مضربًا (نعم ، الخفافيش مفيد في بعض الأحيان) يستمر في تنفيذ svn log -r BASE:HEAD على نسخة العمل الخاصة بي. يظهر جميع التعليقات وتقديم تواريخ المراجعة. إنه يعمل بشكل جيد ، لكنه ليس مريحًا لمستودعات مختلفة.

كيف تتبع التغييرات في مستودعاتك؟ هل تستخدم برنامجًا صغيرًا صنعته لنفسك؟ هل تستخدم البرنامج الذي صنعه شخص آخر؟ أنا مهتم بكل نهج لهذه المشكلة.

أود الحصول على إشعارات ومزيد من المعلومات حول الالتزام. وظائف IDE المتكاملة جيدة ، ولكن العمل فقط إذا طلبت المعلومات.
لا أريد أن أتصرف للحصول على هذه المعلومات.

النظام الأساسي: Windows ، Subversion 1.5 وأعلى.

هل كانت مفيدة؟

المحلول

أنا استخدم الالتزام; ؛ إنه من واحد من السلاحف المطورين. يمكنك بسهولة إضافة العديد من عناوين URL SVN لمراقبة وتحديد فاصل لفاصل للتحقق من الالتزامات. إذا تم العثور على أي تحديثات ، فإنه يظهر القليل من النوافذ المنبثقة في زاوية الشاشة.

يوجد ايضا شاشة SVN, ، لكن هذا أكثر تعقيدًا قليلاً للاستخدام والإعداد. إلى جانب إعطاء رسالة على الالتزامات ، يمكن أن تظهر لك أيضًا الملفات التي قمت بتعديلها وتذكيرك بالارتباط بتغييراتك.

نصائح أخرى

اذا كنت تمتلك السلاحف مثبت ، ثم يمكنك استخدام SVN شوائب.

أملك WebSVN تم تثبيته والاشتراك في خلاصات RSS للمسارات التي أهتم بها.

أنا أستعمل PowerShell للكشف عن التغييرات على فرع SVN ونشر. يجب استدعاء هذا البرنامج النصي من جدول المهام وتنفيذها من جذر SVN (أو يمكنك ببساطة الحلقة والنوم إلى الأبد):

function get-revision() {
    $rev = svn info 2>&1 | sls '^Last Changed Rev:' | out-string
    $rev = $rev -split ':'
    $rev[1].Trim()
}

function if-changed([string]$branch, [scriptblock]$script) {
    Write-Verbose "Checking for changes: $branch"
    pushd $branch
    $r = get-revision

    if ($r -gt $status[$branch]) {
        Write-Verbose "|- '$branch' changed, revision $r"
        & $script
    }
    else { Write-Verbose "|- '$branch' is up to date at revision $r" }
    $status[$branch] = $r
    popd
}

svn update
Write-Verbose "Getting the deploy status"
if (Test-Path status) { $status = Import-Clixml status } else { Write-Verbose "|- No status found"; $status=@{} }

if-changed trunk { "Deploying trunk..." }

هذا أسهل بكثير ومحمول من استخدام أي من تطبيقات الطرف الثالث المذكور أعلاه.

svn info | grep Revision تناسبني. يظهر ، على سبيل المثال:

Revision: 183

إذا تغيرت مما أعتقد أنه ينبغي ، فأنا أتحقق أكثر.

أنا أستعمل

svn status --show-updates

لتظهر لك الملفات التي قمت بتغييرها وكذلك تلك الملفات التي تغيرت في المستودع.

يمكنك استخدام نصوص الخطاف في التخريب لإعداد الإخطارات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top