android क्या मुझे.idea/caches/build_file_checksums.ser को.gitignore में जोड़ना चाहिए?




android-studio android-gradle (2)

मैंने अपने एंड्रॉइड स्टूडियो को 3.0.1 से 3.1 तक अपडेट किया, और अपने मौजूदा प्रोजेक्ट में एक अपरिचित फ़ाइल पर ध्यान दिया:

    .idea/caches/build_file_checksums.ser

यह इस बात पर निर्भर नहीं करता है कि आप एंड्रॉइड ग्रैडल प्लगइन को नवीनतम 3.1.0 में अपडेट करते हैं या नहीं; एक बार जब मैंने एंड्रॉइड स्टूडियो 3.1 में एक मौजूदा प्रोजेक्ट खोला, तो यह स्वचालित रूप से फ़ाइल build_file_checksums.ser , भले ही मैंने परियोजना को पिछले 3.0.1 प्लगइन का उपयोग करने के लिए निम्नानुसार रखा हो।

    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }

मैंने एंड्रॉइड स्टूडियो 3.1 में एक नई परियोजना भी बनाई, और पाया कि फ़ाइल build_file_checksums.ser शुरुआत से बनाई गई थी।

लेखन के समय, इस पर कोई आधिकारिक दस्तावेज नहीं लगता है। अगर कोई इसे पा सकता है तो मैं इसकी सराहना करूंगा।

संपादित:

मैंने jdeserialize-1.2 साथ सामग्री का inspected , क्योंकि Samuel ने बताया कि इसमें कुछ सिस्टम पथ शामिल हैं।

$ java -jar ~/Downloads/jdeserialize-1.2.jar .idea/caches/build_file_checksums.ser 
read: com.android.tools.idea.gradle.project.ProjectBuildFileChecksums _h0x7e0002 = r_0x7e0000;  
//// BEGIN stream content output
com.android.tools.idea.gradle.project.ProjectBuildFileChecksums _h0x7e0002 = r_0x7e0000;  
//// END stream content output

//// BEGIN class declarations (excluding array classes)
class java.util.HashMap implements java.io.Serializable {
    float loadFactor;
    int threshold;
}

class com.android.tools.idea.gradle.project.ProjectBuildFileChecksums implements java.io.Serializable {
    long myLastGradleSyncTimestamp;
    java.util.Map myFileChecksums;
}

//// END class declarations

//// BEGIN instance dump
[instance 0x7e0004: 0x7e0003/java.util.HashMap
  object annotations:
    java.util.HashMap
        [blockdata 0x00: 8 bytes]
        [String 0x7e0005: "settings.gradle"]
        [array 0x7e0007 classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 -89, -2, 26, -61, -111, 105, -75, -27, 40, 90, 94, 83, 102, 47, 37, 27]
        [String 0x7e0008: "build.gradle"]
        [array 0x7e0009 classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 70, 101, -14, 32, 100, -60, -85, -103, 73, -86, 15, 54, -45, 125, 50, 39]
        [String 0x7e000a: "local.properties"]
        [array 0x7e000b classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 -107, 64, 60, -33, -18, 18, 56, -84, 15, 0, -86, -73, -27, 127, -94, 27]
        [String 0x7e000c: "/Users/qtmfld/.gradle/gradle.properties"]
        [array 0x7e000d classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 -44, 29, -116, -39, -113, 0, -78, 4, -23, -128, 9, -104, -20, -8, 66, 126]
        [String 0x7e000e: "gradle.properties"]
        [array 0x7e000f classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 16, -69, 118, 80, -49, -19, 41, -8, 56, -86, 64, -63, 112, -14, 98, 47]
        [String 0x7e0010: "app/build.gradle"]
        [array 0x7e0011 classdesc [cd 0x7e0006: name [B uid -5984413125824719648]: [arraycoll sz 16 -3, -11, 63, -26, 67, -41, -100, 33, 85, -59, -49, -3, -90, 53, -106, 94]

  field data:
    0x7e0003/java.util.HashMap:
        threshold: 12
        loadFactor: 0.75
]
[instance 0x7e0002: 0x7e0000/com.android.tools.idea.gradle.project.ProjectBuildFileChecksums
  field data:
    0x7e0000/com.android.tools.idea.gradle.project.ProjectBuildFileChecksums:
        myFileChecksums: r0x7e0004: java.util.HashMap _h0x7e0004 = r_0x7e0003;  
        myLastGradleSyncTimestamp: 1522297024540
]
//// END instance dump

$ 

आप java.util.HashMap में निम्नलिखित तार देख सकते हैं।

  • "Settings.gradle"
  • "Build.gradle"
  • "Local.properties"
  • "/Users/qtmfld/.gradle/gradle.properties"
  • "Gradle.properties"
  • "एप्लिकेशन / build.gradle"

Wh0 ने एंड्रॉइड स्टूडियो 3.2 पूर्वावलोकन पर एक ही परिणाम स्पष्ट किया है।
https://wh0.github.io/2018/02/17/build-file-checksums-ser.html


आपको इसे .gitignore जोड़ना चाहिए अपने git add में इसे शामिल न करें।

बाईं ओर प्रोजेक्ट विंडो में,

( ) पुल-डाउन मेनू के साथ एंड्रॉइड व्यू को एंड्रॉइड प्रोजेक्ट व्यू में बदल दें।
( b ) आप फ़ोल्डर .idea/caches में build_file_checksums.ser देख सकते हैं।
( c ) प्रोजेक्ट रूट डायरेक्टरी का .gitignore खोलें। ( एप्लिकेशन मॉड्यूल के .gitignore के साथ इसे भ्रमित न करें।)

दाईं ओर .gitignore सामग्री में,

( d ) /.idea/caches/build_file_checksums.ser जोड़ें।

जेटब्रेन के गाइड ने बताया कि आपको शेयर करना चाहिए

  • कार्यक्षेत्र। Xml और कार्यों को छोड़कर प्रोजेक्ट रूट में .idea निर्देशिका के अंतर्गत सभी फ़ाइलें। उपयोगकर्ता विशिष्ट सेटिंग्स को संग्रहीत करने वाली फ़ाइलें।

और यह भी कहा

आप निम्नलिखित को साझा नहीं करने पर विचार कर सकते हैं:

  • ग्रैडल या मावेन आधारित परियोजनाओं के लिए .iml फाइलें, क्योंकि ये फाइलें आयात पर उत्पन्न होंगी
  • gradle.xml फ़ाइल, इस चर्चा को देखें
  • उपयोगकर्ता डिक्शनरी फ़ोल्डर (यदि अन्य डेवलपर का समान नाम है तो संघर्ष से बचने के लिए)
  • XML फ़ाइल .idea / पुस्तकालयों के अंतर्गत आती है, जब वे ग्रेडल या मावेन परियोजना से उत्पन्न होते हैं

इसलिए, एंड्रॉइड स्टूडियो में नई परियोजनाओं के लिए डिफ़ॉल्ट .gitignore है:

*.iml
.gradle
/local.properties
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
.DS_Store
/build
/captures
.externalNativeBuild

लेकिन, build_file_checksums.ser फ़ाइल जावा build_file_checksums.ser ऑब्जेक्ट है, जिसमें हैश और टाइमस्टैम्प शामिल हैं:

  • "Settings.gradle"
  • "Build.gradle"
  • "Local.properties"
  • "" उपयोगकर्ता / ( उपयोगकर्ता नाम ) /। Gradle / gradle.properties "
  • "Gradle.properties"
  • "एप्लिकेशन / build.gradle"

इसलिए, ऐसा लगता है कि issuetracker.google.com/issues/77544553 प्राथमिकता पी 2 और गंभीरता एस 2 था, और पहले से ही स्वीकार और तय किया गया है। मैं भविष्य के रिलीज के लिए तत्पर हूं, जिसमें डिफ़ॉल्ट .gitignore शामिल है

/.idea/caches/build_file_checksums.ser

आपके .idea फ़ोल्डरों की सभी फाइलें आपके IDE (इस मामले में Android स्टूडियो) से संबंधित हैं। और जैसा कि आपने कहा कि यह फाइल परियोजना के उद्घाटन के समय बनाई गई है। इसलिए आपको इस फाइल को अपने .gitignore में जोड़ना चाहिए क्योंकि इन फ़ाइलों में कुछ ऐसी सामग्री हो सकती है जो आपके पूर्ण पथ की तरह आवश्यक नहीं है।





android-studio-3.1