Skip to content

Commit 58c5b99

Browse files
committed
Ensure file resources are released
1 parent 11b3a1d commit 58c5b99

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

Diff for: git/refs/symbolic.py

+17-17
Original file line numberDiff line numberDiff line change
@@ -88,25 +88,25 @@ def _iter_packed_refs(cls, repo):
8888
"""Returns an iterator yielding pairs of sha1/path pairs (as bytes) for the corresponding refs.
8989
:note: The packed refs file will be kept open as long as we iterate"""
9090
try:
91-
fp = open(cls._get_packed_refs_path(repo), 'rt')
92-
for line in fp:
93-
line = line.strip()
94-
if not line:
95-
continue
96-
if line.startswith('#'):
97-
if line.startswith('# pack-refs with:') and not line.endswith('peeled'):
98-
raise TypeError("PackingType of packed-Refs not understood: %r" % line)
99-
# END abort if we do not understand the packing scheme
100-
continue
101-
# END parse comment
91+
with open(cls._get_packed_refs_path(repo), 'rt') as fp:
92+
for line in fp:
93+
line = line.strip()
94+
if not line:
95+
continue
96+
if line.startswith('#'):
97+
if line.startswith('# pack-refs with:') and not line.endswith('peeled'):
98+
raise TypeError("PackingType of packed-Refs not understood: %r" % line)
99+
# END abort if we do not understand the packing scheme
100+
continue
101+
# END parse comment
102102

103-
# skip dereferenced tag object entries - previous line was actual
104-
# tag reference for it
105-
if line[0] == '^':
106-
continue
103+
# skip dereferenced tag object entries - previous line was actual
104+
# tag reference for it
105+
if line[0] == '^':
106+
continue
107107

108-
yield tuple(line.split(' ', 1))
109-
# END for each line
108+
yield tuple(line.split(' ', 1))
109+
# END for each line
110110
except (OSError, IOError):
111111
raise StopIteration
112112
# END no packed-refs file handling

0 commit comments

Comments
 (0)