كيف يمكنني تغيير المؤلف الافتراضي للوصول إلى مستودع SVN؟

StackOverflow https://stackoverflow.com/questions/1666421

سؤال

أريد تغيير اسم مستخدم SVN الافتراضي إلى اسم جديد. حاولت الحل المقترح في هذا الرابط (كيف يمكنني تغيير المؤلف الافتراضي للوصول إلى مستودع SVN محلي؟)، لكن هذا لا يعمل.

لدي حق الوصول إلى مستودع SVN من خلال سطر الأوامر و Aptana باستخدام عميل تلميحي.

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

المحلول

يحرر: هذه الإجابة حول كيفية تغيير مؤلف في السجلات، وليس كيفية تعيين المؤلف الافتراضي. سأترك المحلول هنا لأنه لا يزال بإمكانه المساعدة في التراجع عن ارتكاب القليلة الماضية، وكان المؤلف هو الصحيح.

تحرير 2.: مثال على هذا البرنامج النصي والمعلومات لملفات .bat.


لا تعطي الكثير من التفاصيل لذلك سيتعين علينا التخمين، وسيكون فكرتي الأولى حول البرنامج النصي هوك يسمى للتحقق من التحقق من التغيير. في هذه الحالة، فإن عميلك ليس هو المشكلة، فهو مشكلة تكوين الخادم.

تأكد من أن Pre-RevProp - تغيير البرنامج النصي (في الخاص بك <repository>/hooks دليل، على الخادم)، قابل للتنفيذ من قبل الخادم ويسمح بتغيير المؤلف.

هنا مثال في ج:

#include <stdio.h>

int main(int argc, char *argv[])
{
int i;
 char *repos = argv[1];
 char *rev = argv[2];
 char *user = argv[3];
 char *propname = argv[4];
 char *action = argv[5];

 if (!strcmp(action, "M") && !strcmp(propname, "svn:log")) return 0;
 if (!strcmp(action, "M") && !strcmp(propname, "svn:author")) return 0;
 fprintf(stderr, "Changing revision properties other than svn:log or svn:author is prohibited");
 return 1;
} 

إذا كان خادم SVN الخاص بك على Linux، فقد تقوم أيضا بإعادة تسمية pre-revprop-change.tmpl الملف الذي يتم إنشاؤه تلقائيا مع كل مستودع pre-revprop-change, ، وإعطاءها إذن قابل للتنفيذ للخادم. يجب أن تبدو مثل هذا للسماح للمؤلف وتغييرات السجل:

#!/bin/sh

REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:author" ]; then exit 0; fi
if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

echo "Changing revision properties other than svn:log or svn:author is prohibited" >&2
exit 1

للنوافذ:

@echo off
REM pre-revprop-change.bat hook script
if "%4" == "svn:log" exit /b 0
if "%4" == "svn:author" exit /b 0
echo "Changing revision properties %4% is prohibited" >&2
exit /b 1

إذا لم ينجح ذلك، فقد يكون ذلك بسبب COMSPEC أو متغيرات المسار عدم وجود القيم المناسبة لحساب الخادم، أو يمكن أن يكون أيضا أذونات البرنامج النصي هوك. افحص هذا رابط لمزيد من التفاصيل.

هناك أمثلة أخرى على البرامج النصية هوك في collabnet..

مزيد من التفاصيل في التحكم في الإصدار مع التخريب كتاب على الانترنت، وكذلك هنا (حدد الأقسام التالية).

نصائح أخرى

بالنسبة للكتكس (ولكن يجب أن تعمل مع IDE ECLIPSE مثل Aptana):

في ال SVN Repository وجهات نظر SVN Perpective, ، فقط اذهب إلى Location Properties من المستودع المرغوب وتغيير بيانات الاعتماد في Authentication صندوق.

يجب أن يغير مؤلفك من الآن فصاعدا.

إذا كنت ترغب في إعادة كتابة التاريخ، فعليك استخدام شيء مثل حل Redglyph.

حصلت Subversion 1.4.x على SVN فقط: سجل مسموح به في الافتراضي pre-revprop-change ملف. يمكن أن يسبب هذا مشكلة عند استخدام Eclipse مع Plugin SVN تلميذ.

لحل الخطأ السحري تفيد ذلك

تغيير خصائص المراجعة بخلاف SVN: يحظر السجل

بعد أوامر SVN. لحل هذه المشكلة الخاصة إضافة

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:author" ]; then exit 0; fi

من حل redglyph أعلاه.

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