File tree Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Original file line number Diff line number Diff line change 14
14
#include "utf8.h"
15
15
#include "quote.h"
16
16
#include "thread-utils.h"
17
+ #include "dir.h"
17
18
18
19
const char git_attr__true [] = "(builtin)true" ;
19
20
const char git_attr__false [] = "\0(builtin)false" ;
@@ -744,6 +745,19 @@ static struct attr_stack *read_attr_from_index(struct index_state *istate,
744
745
if (!istate )
745
746
return NULL ;
746
747
748
+ /*
749
+ * The .gitattributes file only applies to files within its
750
+ * parent directory. In the case of cone-mode sparse-checkout,
751
+ * the .gitattributes file is sparse if and only if all paths
752
+ * within that directory are also sparse. Thus, don't load the
753
+ * .gitattributes file since it will not matter.
754
+ *
755
+ * In the case of a sparse index, it is critical that we don't go
756
+ * looking for a .gitattributes file, as the index will expand.
757
+ */
758
+ if (!path_in_cone_modesparse_checkout (path , istate ))
759
+ return NULL ;
760
+
747
761
buf = read_blob_data_from_index (istate , path , NULL );
748
762
if (!buf )
749
763
return NULL ;
You can’t perform that action at this time.
0 commit comments