2012-04-19 7 views
9

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

एक बार मेरे एससीएम उपकरण .xcodeproj फ़ाइल पर संघर्ष की शिकायत करते हैं, तो मैं बस पूरी परियोजना की एक और प्रतिलिपि देख सकता हूं और इसमें किए गए सभी परिवर्तनों को मर्ज कर सकता हूं और प्रार्थना करता हूं कि कोई भी मुझसे 'तेज' नहीं है।

क्या एक्सकोड की डिफ़ॉल्ट रणनीति बदलने के लिए कोई कामकाज है?

उत्तर

0

यह आपका एकमात्र सहारा नहीं है। .xcodeproj फ़ाइलें पाठ हैं। प्रारूप को समझना बहुत मुश्किल नहीं है। संघर्ष को हल करने का सामान्य तरीका जोड़ों के दोनों सेट लेना है (हालांकि, निश्चित रूप से, अपवाद हैं)।

1

जो मैं समझता हूं, उससे .xcodeproj वास्तव में .pbxuser और .pbxproj सहित कई फ़ाइलों के लिए एक रैपर है। पता नहीं है कि आप किस एससीएम का उपयोग कर रहे हैं, लेकिन इस विषय को गिट का उपयोग करने वाले लोगों के लिए here पर स्पर्श किया गया था, और आम सहमति यह प्रतीत होती है कि .pbxuser फ़ाइल के साथ-साथ कई अन्य लोगों को संस्करण नियंत्रण में शामिल नहीं किया जाना चाहिए।

0
  1. xcode
  2. खुला एक टर्मिनल से बाहर निकलें।
  3. नेविगेट /.xcodeproj/project.xcworkspace को
  4. प्रकार: MV contents.xcworkspacedata contents.xcworkspacedata.bak
  5. पुनः आरंभ xcode
0

क्या हम टीमों इस फाइल पर टकराव से बचने के लिए क्या करना है, प्रोजेक्ट फ़ाइल को छोड़कर सभी फाइलें करने के लिए। इस मामले में सबकुछ सुरक्षित रहता है। यदि आप केवल अपनी खुद की प्रोजेक्ट फ़ाइल चाहते हैं, या इसे .gitignore फ़ाइल में भी शामिल करना चाहते हैं तो इसे अपडेट करने से बच सकते हैं ताकि इसे स्वचालित रूप से अनदेखा कर दिया जा सके।

######################### 
# .gitignore file for Xcode4/OS X Source projects 
# 
# Version 2.0 
# For latest version, see: http://stackoverflow.com/questions/49478/git-ignore-file-for-xcode-projects 
# 
# 2013 updates: 
# - fixed the broken "save personal Schemes" 
# 
# NB: if you are storing "built" products, this WILL NOT WORK, 
# and you should use a different .gitignore (or none at all) 
# This file is for SOURCE projects, where there are many extra 
# files that we want to exclude 
# 
######################### 

##### 
# OS X temporary files that should never be committed 

.DS_Store 
*.swp 
*.lock 
profile 


#### 
# Xcode temporary files that should never be committed 
# 
# NB: NIB/XIB files still exist even on Storyboard projects, so we want this... 

*~.nib 


#### 
# Xcode build files - 
# 
# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "DerivedData" 

DerivedData/ 

# NB: slash on the end, so we only remove the FOLDER, not any files that were badly named "build" 

build/ 


##### 
# Xcode private settings (window sizes, bookmarks, breakpoints, custom executables, smart groups) 
# 
# This is complicated: 
# 
# SOMETIMES you need to put this file in version control. 
# Apple designed it poorly - if you use "custom executables", they are 
# saved in this file. 
# 99% of projects do NOT use those, so they do NOT want to version control this file. 
# ..but if you're in the 1%, comment out the line "*.pbxuser" 

*.pbxuser 
*.mode1v3 
*.mode2v3 
*.perspectivev3 
# NB: also, whitelist the default ones, some projects need to use these 
!default.pbxuser 
!default.mode1v3 
!default.mode2v3 
!default.perspectivev3 


#### 
# Xcode 4 - semi-personal settings 
# 
# 
# OPTION 1: --------------------------------- 
# throw away ALL personal settings (including custom schemes! 
# - unless they are "shared") 
# 
# NB: this is exclusive with OPTION 2 below 
xcuserdata 

# OPTION 2: --------------------------------- 
# get rid of ALL personal settings, but KEEP SOME OF THEM 
# - NB: you must manually uncomment the bits you want to keep 
# 
# NB: this is exclusive with OPTION 1 above 
# 
#xcuserdata/**/* 

# (requires option 2 above): Personal Schemes 
# 
#!xcuserdata/**/xcschemes/* 

#### 
# XCode 4 workspaces - more detailed 
# 
# Workspaces are important! They are a core feature of Xcode - don't exclude them :) 
# 
# Workspace layout is quite spammy. For reference: 
# 
# /(root)/ 
# /(project-name).xcodeproj/ 
# project.pbxproj 
# /project.xcworkspace/ 
# contents.xcworkspacedata 
# /xcuserdata/ 
# /(your name)/xcuserdatad/ 
# UserInterfaceState.xcuserstate 
# /xcsshareddata/ 
# /xcschemes/ 
# (shared scheme name).xcscheme 
# /xcuserdata/ 
# /(your name)/xcuserdatad/ 
# (private scheme).xcscheme 
# xcschememanagement.plist 
# 
# 

#### 
# Xcode 4 - Deprecated classes 
# 
# Allegedly, if you manually "deprecate" your classes, they get moved here. 
# 
# We're using source-control, so this is a "feature" that we do not want! 

*.moved-aside 


#### 
# UNKNOWN: recommended by others, but I can't discover what these files are 
# 
# ...none. Everything is now explained. 
2

ग्रहण या अन्य IDEs के विपरीत, Xcode .xcodeproj फ़ाइल कभी भी यह पता चलता है कि एक फ़ाइल या परियोजना में समूह, जोड़ा जाता है नाम बदला गया या हटाया संशोधित करेगा।

ग्रहण और कुछ अन्य IDEs के विपरीत, Xcode क्या फ़ाइलों परियोजना और परियोजना "फाइल" के भाग के रूप समूह संरचना में हैं की सूची रखता है (.xcodeproj फ़ाइल वास्तव में एक निर्देशिका है)। समूहों को भौतिक रूप से निर्देशिकाओं के रूप में मौजूद नहीं होना चाहिए और फाइलें वास्तव में सभी प्रकार के स्थानों में हो सकती हैं और उन्हें एक्सकोड में दिखाई देने के रूप में नामित नहीं किया जाना चाहिए।

अगर कोई किसी प्रोजेक्ट में कोई नई फ़ाइल जोड़ता है, या प्रोजेक्ट से फ़ाइल हटा देता है, या फ़ाइल या समूह के नाम को बदलता है, तो इसे आपके एससीएम में प्रतिबिंबित करने की आवश्यकता होती है क्योंकि कोई और कामकाजी प्रतिलिपि या क्लोनिंग की जांच करता है यदि आपकी डिस्क डिस्क पर मौजूद है, तो यह आपके रिपोजिटरी या जो कुछ भी बेहतर पसंद करता है उसे बेहतर बनाता है। तो उदाहरण के लिए, अगर कोई फ़ाइल हटा देता है लेकिन वह परिवर्तन दूसरों की एक्सकोड प्रोजेक्ट फ़ाइल में दिखाई नहीं देता है, तो वे अपडेट/सिंक/पुल या जो भी हो, उसके बाद संकलन त्रुटियां प्राप्त करेंगे।

ऐसा कहकर, प्रोजेक्ट फ़ाइल में उपयोगकर्ता सेटिंग्स का एक भार भी शामिल है जो महत्वपूर्ण नहीं हैं। एक्सकोड 4 में।एक्स मैं अपने एससीएम ने नजरअंदाज कर दिया करने के लिए निम्न निर्देशिकाओं सेट:

foo.xcodeproj/project.xcworkspace/xcuserdata 
foo.xcodeproj/xcuserdata 

पुराने संस्करण परियोजना फाइलों में मैं निम्नलिखित ध्यान नहीं दिया जा करने के लिए सेट करने के लिए इस्तेमाल:

foo.xcodeproj/*.pbxuser 
foo.xcodeproj/*.mode1v3 

के रूप में अनावश्यक बकवास बाहर फिल्टर करने के लिए लगता है कि जहां तक ​​एससीएम का संबंध है।

0

मर्ज विवादों से बचने के लिए एक रणनीति के रूप में: आपको उन संघर्षों को प्राप्त होगा जिन्हें एक दर्दनाक मैन्युअल विलय की आवश्यकता होती है यदि दो उपयोगकर्ता एक ही स्थान पर फ़ाइल बदलते हैं। उदाहरण के लिए ऐसा होता है यदि दो उपयोगकर्ता समूह के अंत में एक फ़ाइल जोड़ते हैं, क्योंकि दोनों परिवर्तन एक ही स्थान पर हैं। यदि हर कोई एक अलग जगह में नई फाइलें जोड़ता है (उदाहरण के लिए वर्णमाला क्रम में) तो विवाद कोई विलय नहीं होगा। या कम से कम कम।

संबंधित मुद्दे