나는 실행 호스팅 지속적인 통합 회사, 우리는 리눅스에 대한 고객의 코드를 실행합니다. 코드를 실행할 때마다 별도의 가상 머신에서 코드를 실행합니다. 자주 발생하는 문제는 VM에서 코드를 체크 아웃 한 디렉토리 순서로 인해 고객의 테스트가 실패하는 경우가 있습니다.
좀 더 자세히 살펴 보겠습니다. OSX에서 HFS + 파일 시스템은 디렉토리가 항상 동일한 순서로 순회되도록합니다. OSX를 사용하는 프로그래머는 자신의 컴퓨터에서 작동하면 어디에서나 작동해야한다고 가정합니다. 그러나 리눅스 파일 시스템은 디렉토리를 탐색 할 때 순서 보장을 제공하지 않기 때문에 Linux에서는 종종 작동하지 않습니다.
예를 들어, a.rb, b.rb라는 두 개의 파일이 있다고 가정하십시오. a.rb는 정의 MyObject
하고 b.rb는 사용합니다 MyObject
. a.rb가 먼저로드되면 모든 것이 작동합니다. b.rb가 먼저로드되면 정의되지 않은 변수에 액세스하려고 시도 MyObject
하고 실패합니다.
그러나 이것보다 더 나쁜 것은 항상 실패하지는 않는다는 것입니다. Linux에서 파일 시스템 순서는 순서가 없으므로 다른 시스템에서는 순서가 다릅니다. 때로는 테스트가 통과하고 때로는 실패하기 때문에 더 나쁩니다. 이것이 최악의 결과입니다.
그래서 제 질문은 파일 시스템 순서를 반복 가능하게 만드는 방법이 있습니까? 아마도 ext4에 대한 일부 플래그는 항상 어떤 순서로 디렉토리를 통과한다고 말합니다. 아니면이 보증이있는 다른 파일 시스템입니까?