File tree Expand file tree Collapse file tree 2 files changed +35
-4
lines changed Expand file tree Collapse file tree 2 files changed +35
-4
lines changed Original file line number Diff line number Diff line change @@ -487,10 +487,14 @@ impl IgnoreList {
487
487
_ => & self . ignore ,
488
488
} ;
489
489
490
- let mut out = "\n \n #Added by cargo\n \
491
- #\n \
492
- #already existing elements are commented out\n \n "
493
- . to_string ( ) ;
490
+ let mut out = "\n \n #Added by cargo\n " . to_string ( ) ;
491
+ if ignore_items
492
+ . iter ( )
493
+ . any ( |item| existing_items. contains ( item) )
494
+ {
495
+ out. push_str ( "#\n #already existing elements are commented out\n " ) ;
496
+ }
497
+ out. push ( '\n' ) ;
494
498
495
499
for item in ignore_items {
496
500
if existing_items. contains ( item) {
Original file line number Diff line number Diff line change @@ -99,6 +99,33 @@ fn simple_git_ignore_exists() {
99
99
cargo_process ( "build" ) . cwd ( & paths:: root ( ) . join ( "foo" ) ) . run ( ) ;
100
100
}
101
101
102
+ #[ cargo_test]
103
+ fn git_ignore_exists_no_conflicting_entries ( ) {
104
+ // write a .gitignore file with one entry
105
+ fs:: create_dir_all ( paths:: root ( ) . join ( "foo" ) ) . unwrap ( ) ;
106
+ fs:: write ( paths:: root ( ) . join ( "foo/.gitignore" ) , "**/some.file" ) . unwrap ( ) ;
107
+
108
+ cargo_process ( "init --lib foo --edition 2015" )
109
+ . env ( "USER" , "foo" )
110
+ . run ( ) ;
111
+
112
+ let fp = paths:: root ( ) . join ( "foo/.gitignore" ) ;
113
+ let mut contents = String :: new ( ) ;
114
+ File :: open ( & fp)
115
+ . unwrap ( )
116
+ . read_to_string ( & mut contents)
117
+ . unwrap ( ) ;
118
+ assert_eq ! (
119
+ contents,
120
+ "**/some.file\n \n \
121
+ #Added by cargo\n \
122
+ \n \
123
+ /target\n \
124
+ **/*.rs.bk\n \
125
+ Cargo.lock\n ",
126
+ ) ;
127
+ }
128
+
102
129
#[ cargo_test]
103
130
fn both_lib_and_bin ( ) {
104
131
cargo_process ( "init --lib --bin" )
You can’t perform that action at this time.
0 commit comments