|
@@ -139,7 +139,6 @@ Personalized
|
|
from :3
|
|
from :3
|
|
M 100644 :4 a
|
|
M 100644 :4 a
|
|
M 100644 :5 b
|
|
M 100644 :5 b
|
|
-M 160000 1111111111111111111111111111111111111111 submodule
|
|
|
|
|
|
|
|
blob
|
|
blob
|
|
mark :7
|
|
mark :7
|
|
@@ -268,7 +267,7 @@ class ManagedGitWrapperTestCase(BaseGitWrapperTestCase):
|
|
scm.revert(options, self.args, file_list)
|
|
scm.revert(options, self.args, file_list)
|
|
self.assertEqual(file_list, [])
|
|
self.assertEqual(file_list, [])
|
|
self.assertEqual(scm.revinfo(options, self.args, None),
|
|
self.assertEqual(scm.revinfo(options, self.args, None),
|
|
- '4091c7d010ca99d0f2dd416d4b70b758ae432187')
|
|
|
|
|
|
+ 'a7142dc9f0009350b96a11f372b6ea658592aa95')
|
|
sys.stdout.close()
|
|
sys.stdout.close()
|
|
|
|
|
|
def testRevertModified(self):
|
|
def testRevertModified(self):
|
|
@@ -288,7 +287,7 @@ class ManagedGitWrapperTestCase(BaseGitWrapperTestCase):
|
|
scm.diff(options, self.args, file_list)
|
|
scm.diff(options, self.args, file_list)
|
|
self.assertEqual(file_list, [])
|
|
self.assertEqual(file_list, [])
|
|
self.assertEqual(scm.revinfo(options, self.args, None),
|
|
self.assertEqual(scm.revinfo(options, self.args, None),
|
|
- '4091c7d010ca99d0f2dd416d4b70b758ae432187')
|
|
|
|
|
|
+ 'a7142dc9f0009350b96a11f372b6ea658592aa95')
|
|
sys.stdout.close()
|
|
sys.stdout.close()
|
|
|
|
|
|
def testRevertNew(self):
|
|
def testRevertNew(self):
|
|
@@ -310,7 +309,7 @@ class ManagedGitWrapperTestCase(BaseGitWrapperTestCase):
|
|
scm.diff(options, self.args, file_list)
|
|
scm.diff(options, self.args, file_list)
|
|
self.assertEqual(file_list, [])
|
|
self.assertEqual(file_list, [])
|
|
self.assertEqual(scm.revinfo(options, self.args, None),
|
|
self.assertEqual(scm.revinfo(options, self.args, None),
|
|
- '4091c7d010ca99d0f2dd416d4b70b758ae432187')
|
|
|
|
|
|
+ 'a7142dc9f0009350b96a11f372b6ea658592aa95')
|
|
sys.stdout.close()
|
|
sys.stdout.close()
|
|
|
|
|
|
def testStatusRef(self):
|
|
def testStatusRef(self):
|
|
@@ -390,16 +389,14 @@ class ManagedGitWrapperTestCase(BaseGitWrapperTestCase):
|
|
if not self.enabled:
|
|
if not self.enabled:
|
|
return
|
|
return
|
|
options = self.Options()
|
|
options = self.Options()
|
|
- expected_file_list = [
|
|
|
|
- join(self.base_path, x) for x in ['a', 'b', 'submodule']
|
|
|
|
- ]
|
|
|
|
|
|
+ expected_file_list = [join(self.base_path, x) for x in ['a', 'b']]
|
|
scm = gclient_scm.GitWrapper(self.url, self.root_dir, self.relpath)
|
|
scm = gclient_scm.GitWrapper(self.url, self.root_dir, self.relpath)
|
|
file_list = []
|
|
file_list = []
|
|
|
|
|
|
scm.update(options, (), file_list)
|
|
scm.update(options, (), file_list)
|
|
self.assertEqual(file_list, expected_file_list)
|
|
self.assertEqual(file_list, expected_file_list)
|
|
self.assertEqual(scm.revinfo(options, (), None),
|
|
self.assertEqual(scm.revinfo(options, (), None),
|
|
- '4091c7d010ca99d0f2dd416d4b70b758ae432187')
|
|
|
|
|
|
+ 'a7142dc9f0009350b96a11f372b6ea658592aa95')
|
|
self.assertEqual(
|
|
self.assertEqual(
|
|
scm._Capture(['config', '--get', 'diff.ignoreSubmodules']), 'dirty')
|
|
scm._Capture(['config', '--get', 'diff.ignoreSubmodules']), 'dirty')
|
|
self.assertEqual(
|
|
self.assertEqual(
|
|
@@ -421,13 +418,12 @@ class ManagedGitWrapperTestCase(BaseGitWrapperTestCase):
|
|
rev = scm.revinfo(options, (), None)
|
|
rev = scm.revinfo(options, (), None)
|
|
file_list = []
|
|
file_list = []
|
|
scm.update(options, (), file_list)
|
|
scm.update(options, (), file_list)
|
|
- self.assertEqual(
|
|
|
|
- file_list,
|
|
|
|
- [join(self.base_path, x) for x in ['a', 'b', 'c', 'submodule']])
|
|
|
|
|
|
+ self.assertEqual(file_list,
|
|
|
|
+ [join(self.base_path, x) for x in ['a', 'b', 'c']])
|
|
# The actual commit that is created is unstable, so we verify its tree
|
|
# The actual commit that is created is unstable, so we verify its tree
|
|
# and parents instead.
|
|
# and parents instead.
|
|
self.assertEqual(scm._Capture(['rev-parse', 'HEAD:']),
|
|
self.assertEqual(scm._Capture(['rev-parse', 'HEAD:']),
|
|
- '3a3ba72731fa208d37b06598a129ba93970325df')
|
|
|
|
|
|
+ 'd2e35c10ac24d6c621e14a1fcadceb533155627d')
|
|
parent = 'HEAD^' if sys.platform != 'win32' else 'HEAD^^'
|
|
parent = 'HEAD^' if sys.platform != 'win32' else 'HEAD^^'
|
|
self.assertEqual(scm._Capture(['rev-parse', parent + '1']), rev)
|
|
self.assertEqual(scm._Capture(['rev-parse', parent + '1']), rev)
|
|
self.assertEqual(scm._Capture(['rev-parse', parent + '2']),
|
|
self.assertEqual(scm._Capture(['rev-parse', parent + '2']),
|
|
@@ -449,13 +445,12 @@ class ManagedGitWrapperTestCase(BaseGitWrapperTestCase):
|
|
'(y)es / (q)uit / (s)kip : ', 'y')
|
|
'(y)es / (q)uit / (s)kip : ', 'y')
|
|
file_list = []
|
|
file_list = []
|
|
scm.update(options, (), file_list)
|
|
scm.update(options, (), file_list)
|
|
- self.assertEqual(
|
|
|
|
- file_list,
|
|
|
|
- [join(self.base_path, x) for x in ['a', 'b', 'c', 'submodule']])
|
|
|
|
|
|
+ self.assertEqual(file_list,
|
|
|
|
+ [join(self.base_path, x) for x in ['a', 'b', 'c']])
|
|
# The actual commit that is created is unstable, so we verify its tree
|
|
# The actual commit that is created is unstable, so we verify its tree
|
|
# and parent instead.
|
|
# and parent instead.
|
|
self.assertEqual(scm._Capture(['rev-parse', 'HEAD:']),
|
|
self.assertEqual(scm._Capture(['rev-parse', 'HEAD:']),
|
|
- '3a3ba72731fa208d37b06598a129ba93970325df')
|
|
|
|
|
|
+ 'd2e35c10ac24d6c621e14a1fcadceb533155627d')
|
|
parent = 'HEAD^' if sys.platform != 'win32' else 'HEAD^^'
|
|
parent = 'HEAD^' if sys.platform != 'win32' else 'HEAD^^'
|
|
self.assertEqual(scm._Capture(['rev-parse', parent + '1']),
|
|
self.assertEqual(scm._Capture(['rev-parse', parent + '1']),
|
|
scm._Capture(['rev-parse', 'origin/main']))
|
|
scm._Capture(['rev-parse', 'origin/main']))
|
|
@@ -806,15 +801,14 @@ class UnmanagedGitWrapperTestCase(BaseGitWrapperTestCase):
|
|
self.relpath = '.'
|
|
self.relpath = '.'
|
|
self.base_path = join(self.root_dir, self.relpath)
|
|
self.base_path = join(self.root_dir, self.relpath)
|
|
url_with_commit_ref = origin_root_dir +\
|
|
url_with_commit_ref = origin_root_dir +\
|
|
- '@4091c7d010ca99d0f2dd416d4b70b758ae432187'
|
|
|
|
|
|
+ '@a7142dc9f0009350b96a11f372b6ea658592aa95'
|
|
|
|
|
|
scm = gclient_scm.GitWrapper(url_with_commit_ref, self.root_dir,
|
|
scm = gclient_scm.GitWrapper(url_with_commit_ref, self.root_dir,
|
|
self.relpath)
|
|
self.relpath)
|
|
|
|
|
|
expected_file_list = [
|
|
expected_file_list = [
|
|
join(self.base_path, "a"),
|
|
join(self.base_path, "a"),
|
|
- join(self.base_path, "b"),
|
|
|
|
- join(self.base_path, "submodule"),
|
|
|
|
|
|
+ join(self.base_path, "b")
|
|
]
|
|
]
|
|
file_list = []
|
|
file_list = []
|
|
options.revision = 'unmanaged'
|
|
options.revision = 'unmanaged'
|
|
@@ -822,11 +816,11 @@ class UnmanagedGitWrapperTestCase(BaseGitWrapperTestCase):
|
|
|
|
|
|
self.assertEqual(file_list, expected_file_list)
|
|
self.assertEqual(file_list, expected_file_list)
|
|
self.assertEqual(scm.revinfo(options, (), None),
|
|
self.assertEqual(scm.revinfo(options, (), None),
|
|
- '4091c7d010ca99d0f2dd416d4b70b758ae432187')
|
|
|
|
|
|
+ 'a7142dc9f0009350b96a11f372b6ea658592aa95')
|
|
# indicates detached HEAD
|
|
# indicates detached HEAD
|
|
self.assertEqual(self.getCurrentBranch(), None)
|
|
self.assertEqual(self.getCurrentBranch(), None)
|
|
self.checkInStdout(
|
|
self.checkInStdout(
|
|
- 'Checked out 4091c7d010ca99d0f2dd416d4b70b758ae432187 to a detached HEAD'
|
|
|
|
|
|
+ 'Checked out a7142dc9f0009350b96a11f372b6ea658592aa95 to a detached HEAD'
|
|
)
|
|
)
|
|
|
|
|
|
def testUpdateCloneOnBranch(self):
|
|
def testUpdateCloneOnBranch(self):
|
|
@@ -1608,57 +1602,6 @@ class CheckDiffTest(fake_repos.FakeReposTestBase):
|
|
self.assertFalse(scm.check_diff(self.githash('repo_1', 2)))
|
|
self.assertFalse(scm.check_diff(self.githash('repo_1', 2)))
|
|
|
|
|
|
|
|
|
|
-class Submodules(BaseGitWrapperTestCase):
|
|
|
|
- submodule_hash = '1111111111111111111111111111111111111111'
|
|
|
|
-
|
|
|
|
- def testGetSubmoduleClean(self):
|
|
|
|
- scm = gclient_scm.GitWrapper(self.url, self.root_dir, self.relpath)
|
|
|
|
- options = self.Options()
|
|
|
|
- scm.update(options, None, [])
|
|
|
|
- self.assertEqual(scm.GetSubmoduleStateFromIndex(),
|
|
|
|
- {'submodule': self.submodule_hash})
|
|
|
|
- self.assertEqual(scm.GetSubmoduleDiff(), {})
|
|
|
|
-
|
|
|
|
- def testGetSubmoduleModified(self):
|
|
|
|
- scm = gclient_scm.GitWrapper(self.url, self.root_dir, self.relpath)
|
|
|
|
- options = self.Options()
|
|
|
|
- scm.update(options, None, [])
|
|
|
|
-
|
|
|
|
- # Create submodule diff
|
|
|
|
- submodule_dir = os.path.join(self.root_dir, 'submodule')
|
|
|
|
- subprocess2.check_output(['git', '-C', submodule_dir, 'init'])
|
|
|
|
- subprocess2.check_output([
|
|
|
|
- 'git', '-C', submodule_dir, 'commit', '-m', 'foo', '--allow-empty'
|
|
|
|
- ])
|
|
|
|
- new_rev = subprocess2.check_output(
|
|
|
|
- ['git', '-C', submodule_dir, 'rev-parse',
|
|
|
|
- 'HEAD']).decode('utf-8').strip()
|
|
|
|
-
|
|
|
|
- # And file diff
|
|
|
|
- with open(os.path.join(self.root_dir, 'a'), 'w') as f:
|
|
|
|
- f.write('foo')
|
|
|
|
-
|
|
|
|
- self.assertEqual(scm.GetSubmoduleStateFromIndex(),
|
|
|
|
- {'submodule': self.submodule_hash})
|
|
|
|
-
|
|
|
|
- self.assertEqual(scm.GetSubmoduleDiff(),
|
|
|
|
- {'submodule': (self.submodule_hash, new_rev)})
|
|
|
|
-
|
|
|
|
- def testGetSubmoduleDeleted(self):
|
|
|
|
- scm = gclient_scm.GitWrapper(self.url, self.root_dir, self.relpath)
|
|
|
|
- options = self.Options()
|
|
|
|
- scm.update(options, None, [])
|
|
|
|
- subprocess2.check_output(
|
|
|
|
- ['git', '-C', self.root_dir, 'rm', 'submodule'])
|
|
|
|
-
|
|
|
|
- # When git removes submodule, it's autmatically staged and content is
|
|
|
|
- # unavailable. Therefore, the index shouldn't have any entries and diff
|
|
|
|
- # should be empty.
|
|
|
|
- self.assertEqual(scm.GetSubmoduleStateFromIndex(), {})
|
|
|
|
-
|
|
|
|
- self.assertEqual(scm.GetSubmoduleDiff(), {})
|
|
|
|
-
|
|
|
|
-
|
|
|
|
if 'unittest.util' in __import__('sys').modules:
|
|
if 'unittest.util' in __import__('sys').modules:
|
|
# Show full diff in self.assertEqual.
|
|
# Show full diff in self.assertEqual.
|
|
__import__('sys').modules['unittest.util']._MAX_LENGTH = 999999999
|
|
__import__('sys').modules['unittest.util']._MAX_LENGTH = 999999999
|