मैं अपने एएसपी.NET वेबसाइट के साथ एसवीएन संशोधन संख्या को कैसे सिंक करूं?

स्टैक ओवरफ़्लो में नीचे एक उपवर्तन संस्करण संख्या है:

svn संशोधन: 679

मैं अपने .NET वेब साइट / एप्लिकेशन </कोड>, विंडोज फॉर्म, डब्ल्यूपीडी परियोजनाओं / समाधानों के साथ ऐसे स्वचालित संस्करण का उपयोग करना चाहता हूं।

मैं इसे कैसे क्रियान्वित करूं?

0
जोड़ा संपादित
विचारों: 1
@ बॉलून यदि आप TortoiseSVN का उपयोग कर रहे हैं, तो आप पैक किए गए SubWCRev का उपयोग कर सकते हैं कार्यक्रम। यह एक कार्यशील प्रतिलिपि से पूछताछ करता है और आपको केवल उच्चतम संशोधन संख्या बताता है। माना जाता है कि यह सर्वर-साइड समस्या के लिए क्लाइंट-साइड दृष्टिकोण प्रतीत होता है, लेकिन चूंकि यह एक अच्छा कमांड लाइन प्रोग्राम है, इसलिए आप अपने आउटपुट को काफी आसानी से कैप्चर करने में सक्षम होना चाहिए।
जोड़ा लेखक nickf, स्रोत
यदि आप SubWCRev के लिए TortoiseSVN का उपयोग नहीं कर रहे हैं जैसे मैंने कहा यहां , आप svnversion जो वही काम करता है।
जोड़ा लेखक nickf, स्रोत
जोड़ा लेखक Azhar, स्रोत

7 उत्तर

आप इसे अपने कोड में कहीं भी जोड़कर कर सकते हैं

$Id:$

तो उदाहरण के लिए @ जेफ ने किया:

<div id="svnrevision">svn revision: $Id:$</div>

और सर्वर में चेक किए जाने पर $ आईडी: $ वर्तमान संशोधन संख्या के साथ प्रतिस्थापित किया गया। मैं भी इस संदर्भ को मिला

There is also $Date:$, $Rev:$, $Revision:$

0
जोड़ा
आपको यह सुनिश्चित करने की ज़रूरत है कि फ़ाइलों में svn हो रहा है: कीवर्ड विशेषता सेट भी है, अन्यथा $ आईडी $ आदि स्वत: प्रतिस्थापित नहीं हैं। यह पृष्ठ देखें। (Svn पर स्क्रॉल करें: कीवर्ड)
जोड़ा लेखक Michael Stum, स्रोत
मैंने अभी $ Rev $ का उपयोग करके यह कोशिश की है और यह काम करता है - कुछ हद तक। समस्या यह है कि ऐसा लगता है कि जब फ़ाइल में दिखाई देता है तो यह केवल कीवर्ड को अपडेट करता है। इसका अर्थ यह है कि यदि परियोजना में परिवर्तन किए जाते हैं जो फ़ाइल में $ रेव $ (मेरे मामले में, मेरे एएसपी.नेट मास्टर पेज) के साथ फ़ाइल को प्रभावित नहीं करते हैं, तो उपयोगकर्ता को प्रदर्शित होने की तुलना में परियोजना में उच्च संशोधन होगा । क्या किसी के पास इस पर कोई विचार है? एसवीएन को हमेशा फ़ाइल में कीवर्ड अपडेट करने का कोई तरीका है?
जोड़ा लेखक Chris Roberts, स्रोत
क्या यह उस विशेष फ़ाइल में अंतिम परिवर्तन की संशोधन संख्या नहीं डालेगा? मैंने दो-फाइल भंडार स्थापित करने की कोशिश की और एक बदल दिया, और निर्यात और चेकआउट दोनों की कोशिश की, और दूसरी फाइल दोनों मामलों में 1 पर रुक गई।
जोड़ा लेखक Lasse Vågsæther Karl, स्रोत
आप सही हैं, आपको एक अलग तंत्र का उपयोग करने की आवश्यकता है।
जोड़ा लेखक Lasse Vågsæther Karl, स्रोत
VisualSVN और TortoiseSVN का उपयोग करके, $ आईडी जोड़ना: $ ने पृष्ठ को "$ Id: $" प्रस्तुत करने का कारण बना दिया। यह ध्यान देने योग्य हो सकता है कि यह उत्तर किस सर्वर / क्लाइंट के तहत काम करता है।
जोड़ा लेखक Travis, स्रोत
आपको फ़ाइल में svn: कीवर्ड सबवर्जन प्रॉपर्टी जोड़ने की भी आवश्यकता है और सुनिश्चित करें कि इसमें Id मान शामिल है। हालांकि, यह थोड़ा उपयोग नहीं है: यह विशेष फ़ाइल संशोधित नहीं की गई हो सकती है।
जोड़ा लेखक Álvaro González, स्रोत
lassevk सही है, यह केवल तभी बदलता है जब फ़ाइल स्वयं बदलती है।
जोड़ा लेखक Bruno Lopes, स्रोत

ऐसा लगता है कि जेफ CruiseControl.NET का उपयोग कर रहा है कुछ पॉडकास्ट प्रतिलेखों के माध्यम से पत्ते। ऐसा लगता है कि स्रोत नियंत्रण से उत्पादन तक स्वचालित परिनियोजन क्षमताएं हैं। क्या यह सम्मिलन हो रहा है?

0
जोड़ा
लिंक @ saint_groceon टूट गया है
जोड़ा लेखक Cacho Santa, स्रोत
यदि आप CruiseControl.Net का उपयोग नहीं कर रहे हैं तो मेरा जवाब देखें (लापरवाही प्लग!) - stackoverflow.com/questions/163/… के साथ svn संशोधन संख्या को कैसे सिंक करूं? ओ)
जोड़ा लेखक Andrew, स्रोत

$rev and others like it are revisions for the individual files, so they won't change unless the file changes. The number on the webpage is (most likely, I'm assuming here) the svn revision number for the whole project. That is different than the file revisions, which others have been pointing to.

इस मामले में मुझे लगता है कि सीसीएनईटी परियोजना की संशोधन संख्या खींच रहा है और उस नंबर के साथ वेबपृष्ठ के एक हिस्से को फिर से लिख रहा है। कोई भी सीआई समाधान ऐसा करने में सक्षम होना चाहिए, इसे स्वयं को सीसीएनईटी और टीमसिटी के साथ सेट करें (हालांकि वेबपृष्ठ नहीं, लेकिन तैनाती / असेंबली संस्करणों का स्वचालित संस्करण)।

ऐसा करने के लिए, एक सीआई समाधान का उपयोग करें जो इसका समर्थन करता है, या उस संस्करण को संग्रहीत करने के लिए अपनी बिल्ड प्रक्रिया (MSbuild / Nant) का उपयोग करें और इसे "तैनाती" करने से पहले फ़ाइलों को लिखें।

0
जोड़ा

To add to @BradWilson's answer: "You could also get your source control provider to provide the source revision number if you want"

सबवर्जन और एमएसबिल्ड कनेक्ट करने के लिए: MSBuild सामुदायिक कार्य परियोजना

0
जोड़ा

@Balloon यदि आप TortoiseSVN का उपयोग कर रहे हैं, तो आप पैक किए गए SubWCRev प्रोग्राम का उपयोग कर सकते हैं। यह एक कार्यशील प्रतिलिपि से पूछताछ करता है और आपको केवल उच्चतम संशोधन संख्या बताता है। माना जाता है कि यह सर्वर-साइड समस्या के लिए क्लाइंट-साइड दृष्टिकोण प्रतीत होता है, लेकिन चूंकि यह एक अच्छा कमांड लाइन प्रोग्राम है, इसलिए आप अपने आउटपुट को काफी आसानी से कैप्चर करने में सक्षम होना चाहिए।

0
जोड़ा

हम अपने स्वचालित निर्माण के लिए xUnit.net के साथ ऐसा करते हैं। हम CruiseControl.net (और टीमसिटी को आजमा रहे हैं) का उपयोग करते हैं। एमएसबिल्ड कार्य जो हम निरंतर एकीकरण के लिए चलाते हैं, स्वचालित रूप से हमारे लिए बिल्ड नंबर बदलता है, इसलिए परिणामस्वरूप ज़िप फ़ाइल में डीएलएल और EXE का एक उचित संस्करण सेट होता है।

Our MSBuild file contains a UsingTask reference for a DLL which does regular expression replacements: (you're welcome to use this DLL, as it's covered by the MS-PL license as well)

  

इसके बाद, हम बिल्ड नंबर निकालते हैं, जो सीआई सिस्टम द्वारा स्वचालित रूप से प्रदान किया जाता है। यदि आप चाहें तो स्रोत संशोधन संख्या प्रदान करने के लिए आप अपना स्रोत नियंत्रण प्रदाता भी प्राप्त कर सकते हैं, लेकिन हमने पाया कि सीआई सिस्टम में बिल्ड # अधिक उपयोगी था, क्योंकि न केवल सीआई बिल्ड नंबर द्वारा एकीकरण परिणाम देख सकते हैं, जो कि एक प्रदान करता है परिवर्तन में शामिल किए गए परिवर्तनों (ओं) पर वापस लिंक करें।

 <!-- Cascading attempts to find a build number -->

 
   $(BUILD_NUMBER)
 
 
   $(ccnetlabel)
 
 
   0
 

(हम BUILD_NUMBER का प्रयास करते हैं, जो TeamCity से है, फिर ccnetlabel, जो CC.net से है, और यदि न तो मौजूद है, तो हम 0 पर डिफ़ॉल्ट हैं, ताकि हम स्वचालित रूप से स्वचालित बिल्ड स्क्रिप्ट का परीक्षण कर सकें।)

इसके बाद, हमारे पास एक ऐसा कार्य है जो बिल्ड नंबर को GlobalAssemblyInfo.cs फ़ाइल में सेट करता है जिसे हम अपनी सभी परियोजनाओं में लिंक करते हैं:

 
   
   
 

यह असेंबली वर्जन विशेषता पाता है, और a.b.c.bildNumber के साथ a.b.c.d संस्करण संख्या को प्रतिस्थापित करता है। हम आम तौर पर पेपर में नियत स्रोत को छोड़कर बिल्डर में चेक किए गए स्रोत के पहले तीन हिस्सों के साथ छोड़ देंगे, और चौथाई शून्य (एफए, आज यह 1.0.2.0) होगा।

अपनी निर्माण प्रक्रिया में, सुनिश्चित करें कि SetVersionNumber कार्य आपके निर्माण कार्य से पहले है। अंत में, हम निर्माण परिणामों को ज़िपित करने के लिए हमारे ज़िप कार्य का उपयोग करते हैं ताकि हमारे पास प्रत्येक स्वचालित निर्माण के लिए बाइनरी का इतिहास हो।

0
जोड़ा

यदि आप ASP.Net MVC (जैसे स्टैक ओवरफ्लो करता है) का उपयोग कर रहे हैं, तो मैंने एक कैसे 3-चरणीय मार्गदर्शिका का पालन करना आसान है स्वचालित रूप से नवीनतम एसवीएन संशोधन प्राप्त करने और प्रदर्शित करने के लिए । गाइड इस सवाल के बारे में खुद को सोचकर प्रेरित था! : ओ)

0
जोड़ा
लिंक टूटा हुआ है, या साइट नीचे है
जोड़ा लेखक Cacho Santa, स्रोत
धन्यवाद @cacho, तय - यह एक सर्वर गलती थी [एसआईसी]; ओ)
जोड़ा लेखक Andrew, स्रोत
फिक्स्ड! मुझे बताने के लिए धन्यवाद: ओ)
जोड़ा लेखक Andrew, स्रोत
अच्छा लगता है, यद्यपि टूटा लिंक!
जोड़ा लेखक Peter C, स्रोत
हमारे एसवीएन संशोधन के आधार पर एक संस्करण प्रदर्शित करने के लिए स्वचालित रूप से हमारे लिए यह एक अच्छा समाधान था। एक फायदा यह है कि इसे आपके एसवीएन सर्वर पर कॉल की आवश्यकता नहीं है।
जोड़ा लेखक Ben Elder, स्रोत