sapling/eden/scm/tests/test-issue660-t.py
Xavier Deguillard 182e362070 tests: enable some test on Python3
Summary: These are newly passing, let's enable them.

Reviewed By: quark-zju

Differential Revision: D19668516

fbshipit-source-id: d979631203e14ce6e2ec0ab0c45773ee4846ba71
2020-01-31 13:27:46 -08:00

161 lines
2.8 KiB
Python

# Copyright (c) Facebook, Inc. and its affiliates.
# Copyright (c) Mercurial Contributors.
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
from testutil.dott import feature, sh, testtmp # noqa: F401
# https://bz.mercurial-scm.org/660 and:
# https://bz.mercurial-scm.org/322
sh % "hg init"
sh % "echo a" > "a"
sh % "mkdir b"
sh % "echo b" > "b/b"
sh % "hg commit -A -m 'a is file, b is dir'" == r"""
adding a
adding b/b"""
# File replaced with directory:
sh % "rm a"
sh % "mkdir a"
sh % "echo a" > "a/a"
# Should fail - would corrupt dirstate:
sh % "hg add a/a" == r"""
abort: file 'a' in dirstate clashes with 'a/a'
[255]"""
# Removing shadow:
sh % "hg rm --after a"
# Should succeed - shadow removed:
sh % "hg add a/a"
# Directory replaced with file:
sh % "rm -r b"
sh % "echo b" > "b"
# Should fail - would corrupt dirstate:
sh % "hg add b" == r"""
abort: directory 'b' already in dirstate
[255]"""
# Removing shadow:
sh % "hg rm --after b/b"
# Should succeed - shadow removed:
sh % "hg add b"
# Look what we got:
sh % "hg st" == r"""
A a/a
A b
R a
R b/b"""
# Revert reintroducing shadow - should fail:
sh % "rm -r a b"
sh % "hg revert b/b" == r"""
abort: file 'b' in dirstate clashes with 'b/b'
[255]"""
# Revert all - should succeed:
sh % "hg revert --all" == r"""
undeleting a
forgetting a/a
forgetting b
undeleting b/b"""
sh % "hg st"
# Issue3423:
sh % "hg forget a"
sh % "echo zed" > "a"
sh % "hg revert a"
sh % "hg st" == "? a.orig"
sh % "rm a.orig"
# addremove:
sh % "rm -r a b"
sh % "mkdir a"
sh % "echo a" > "a/a"
sh % "echo b" > "b"
sh % "hg addremove -s 0" == r"""
removing a
adding a/a
adding b
removing b/b"""
sh % "hg st" == r"""
A a/a
A b
R a
R b/b"""
# commit:
sh % "hg ci -A -m 'a is dir, b is file'"
sh % "hg st --all" == r"""
C a/a
C b"""
# Long directory replaced with file:
sh % "mkdir d"
sh % "mkdir d/d"
sh % "echo d" > "d/d/d"
sh % "hg commit -A -m 'd is long directory'" == "adding d/d/d"
sh % "rm -r d"
sh % "echo d" > "d"
# Should fail - would corrupt dirstate:
sh % "hg add d" == r"""
abort: directory 'd' already in dirstate
[255]"""
# Removing shadow:
sh % "hg rm --after d/d/d"
# Should succeed - shadow removed:
sh % "hg add d"
sh % "hg ci -md"
# Update should work at least with clean working directory:
sh % "rm -r a b d"
sh % "hg up -r 0" == "2 files updated, 0 files merged, 0 files removed, 0 files unresolved"
sh % "hg st --all" == r"""
C a
C b/b"""
sh % "rm -r a b"
sh % "hg up -r 1" == "2 files updated, 0 files merged, 0 files removed, 0 files unresolved"
sh % "hg st --all" == r"""
C a/a
C b"""